zoukankan      html  css  js  c++  java
  • Android.mk 使用说明

    Android.mk 详解
    https://blog.csdn.net/dearsq/article/details/50585537

     Android.mk中的主要配置参数:

    1.LOCAL_JACK_ENABLED

    这个变量可以禁止使用Jack编译工具链编译该模块。在工作中,个人感觉目前jack工具链不是很稳定,经常会出现一些错误,比如:
    ERROR: Security problem, see Jack server log (/tmp/jack-liujinwei/jack-8072.log)
    这个时候,我就会在Android.mk中禁止该工具链。

    禁止方法如下:

    LOCAL_JACK_ENABLED := disabled

    2.LOCAL_DEX_PREOPT
    这个变量设置为false可以使整个系统使用提前优化的时候,某个app不使用提前优化。在Android.mk中给该变量赋值为false,则编译生成的文件没有oat文件,也就意味着没有被提前优化。

    LOCAL_DEX_PREOPT := false

    3.WITH_DEXPREOPT
    这个变量的使能导致system image中的所有东西都被提前优化(pre-optimized)。这可能导致system image非常大。

    WITH_DEXPREOPT := true

    4.DONT_DEXPREOPT_PREBUILTS

    WITH_DEXPREOPT := true
    DONT_DEXPREOPT_PREBUILTS := true

    这两个组合使用,可以使那些 prebuild的app不会被提前优化(pre-optimized),即就是那些在Android.mk中包含intclude $(BUILD_PREBUILT)的app都不会被提前优化
    5.WITH_DEXPREOPT_BOOT_IMG_ONLY

    WITH_DEXPREOPT := true
    WITH_DEXPREOPT_BOOT_IMG_ONLY := true

    这两个组合使用只会优化boot image。

    6.LOCAL_MODULE_TAGS

    LOCAL_MODULE_TAGS :=user eng tests optional

    user: 指该模块只在user版本下才编译

    eng: 指该模块只在eng版本下才编译

    tests: 指该模块只在tests版本下才编译

    optional:指该模块在所有版本下都编译

    7.LOCAL_PATH

    当前目录,使用LOCAL_PATH := $(call my-dir)获取当前目录,

    LOCAL_PATH不会被include $(CLEAR_VARS) 清理。

    8.LOCAL_MODULE

    模块名,在模块编译的时候,LOCAL_MODULE的值会被赋予ALL_MODULE,ALL_MODULE包含了系统所有模块,这些模块会更具系统的其他配置进一步筛选,最终筛选出来的模块会被编译。

    9.LOCAL_SHARED_LIBRARIES

    要连接到本模块的共享库。

    10.LOCAL_CERTIFICATE := platform

    使用平台签名文件签名。

    11.include $(BUILD_STATIC_JAVA_LIBRARY)

    构建一个静态的jar包

    12.include $(BUILD_PACKAGE)

    编译生成apk

    13.include $(BUILD_EXECUTABLE)

    编译生成可执行文件

    14.include $(BUILD_SHARED_LIBRARY)

    编译生成动态共享库

    15.include $(BUILD_STATIC_LIBRARY)

    编译生成静态库

    16.LOCAL_JAVA_LIBRARIES

    例如:LOCAL_JAVA_LIBRARIES := hello.jar,用于指明依赖的共享Jar包

    17.LOCAL_STATIC_JAVA_LIBRARIES

    用于指明依赖的静态jar包

    18.LOCAL_LDLIBS

    链接选项,指明链接的参数,LOCAL_SHARED_LIBRARIES 会生成依赖关系,当库不存在时会去编译这个库,LOCAL_LDLIBS则不会,它只是指明链接需要的参数。

    如:LOCAL_LDLIBS += -lm –lz –lc -lcutils –lutils –llog …
    ---------------------
    作者:阳光玻璃杯
    来源:CSDN
    原文:https://blog.csdn.net/u011913612/article/details/51853502
    版权声明:本文为博主原创文章,转载请附上博文链接!


    Android 新一代编译 toolchain Jack & Jill 简介
    https://www.jianshu.com/p/1d7775bed2e2


    在依赖了 Sun/Oracle 的 Java 编译器十年之后,Android 终于有了自己的 Java 编译器。

    Jack 是 Java Android Compiler Kit 的缩写,它可以将 Java 代码直接编译为 Dalvik 字节码,并负责 Minification, Obfuscation, Repackaging, Multidexing, Incremental compilation。它试图取代 javac/dx/proguard/jarjar/multidex 库等工具。

    git 源代码地址是 https://android.googlesource.com/toolchain/jack。

    Jill 是 Jack Intermediate Library Linker 的缩写,它负责 “Shielding JACK from Java byte code”;实际上辅助 Jack 对.class 做预处理,生成 .jack 文件

    git 源代码地址是 https://android.googlesource.com/toolchain/jill。

    自 Android build-tools 21.1 开始,里面已经内置 jack.jar 和 jill.jarAndroid Gradle plugin 自 0.14 开始支持 Jack & Jill initial commit自 Android 6.0 开始,Jack & Jill 成为 AOSP 的官方编译器, 也就是说所有的 Android 6.0 ROM 都是 Jack 编译出来的 link,也代表 Google 认为 Jack 达到了一定的成熟度预计等 Android 7.0 正式发布时,Jack 可能会成为官方推荐的编译器


  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/bluestorm/p/11137559.html
Copyright © 2011-2022 走看看