• 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 可能会成为官方推荐的编译器


  • 相关阅读:
    迭代和列表生成式
    python递归函数
    python函数
    变量
    python第八课后整理
    python第八课
    python第七课
    python第六课
    python第五课
    微信端/企业微信端H5页面调试方法
  • 原文地址:https://www.cnblogs.com/bluestorm/p/11137559.html
Copyright © 2020-2023  润新知