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

  1. WITH_DEXPREOPT := true
  2. DONT_DEXPREOPT_PREBUILTS := true

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

5.WITH_DEXPREOPT_BOOT_IMG_ONLY

  1. WITH_DEXPREOPT := true
  2. 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 …

android.mk中几个常见配置

2016年08月22日 18:08:03

阅读数:8838

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

  1. WITH_DEXPREOPT := true
  2. DONT_DEXPREOPT_PREBUILTS := true

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

5.WITH_DEXPREOPT_BOOT_IMG_ONLY

  1. WITH_DEXPREOPT := true
  2. 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 …

Android 系统(140)---android.mk中几个常见配置相关推荐

  1. android.mk中几个常见配置

    1.LOCAL_JACK_ENABLED 这个变量可以禁止使用Jack编译工具链编译该模块.在工作中,个人感觉目前jack工具链不是很稳定,经常会出现一些错误,比如: ERROR: Security ...

  2. Android系统在新进程中启动自定义服务过程(startService)的原理分析 (下)

    Step 10. ActivityManagerService.attachApplicationLocked 这个函数定义在frameworks/base/services/java/com/and ...

  3. 【android系统】android系统升级流程分析(一)---recovery模式中进行update包升级流程分析

    今天我们直接来看下android中具体的升级过程是如何的. 升级流程概述 升级的流程图: 升级流程分析 第一步:升级包获取 升级获取可以通过远程下载,也可直接拷贝到指定目录即可. 第二步:准备升级 然 ...

  4. Android 系统(191)---ODM 开发用户常见需求文档(九)

    Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...

  5. 【android系统】android系统升级流程分析(二)---update升级包分析

    接下来我们将通过几篇文章来分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.今天让我先来分析下升级包update.zip. 一 ...

  6. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  7. android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...

    Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...

  8. 如何获得android系统版本,Android如何获得系统版本

    Android如何获得系统版本 如何获得Android系统版本 项目移植中,遇到需要区分不同系统版本的问题.于是查找相关方法如下: android.os.Build类提供了当前系统信息. 可用if ( ...

  9. android log抓取方法,Android系统之Android抓取各种log的方法

    Android系统之Android抓取各种log的方法 2018年11月25日 | 萬仟网移动技术 | 我要评论 android之android抓取各种log的方法 1.logcat (四类log b ...

最新文章

  1. (C#)WinForm窗体间传值
  2. 500 OOPS:cannot change directory:/root 问题
  3. centos 7 Chrony 集群同步时间
  4. JDBC的入门案列以及JDBC的对事务的管理
  5. Memcached 数据缓存系统
  6. js (javascript) 中获取年月日信息
  7. Windows进程系列(2) -- Svchost进程
  8. linux统计所有进程总共占用多少内存?
  9. inDesign教程,如何在文档中添加链接和动画?
  10. HighCharts:PlotLine的label文字不显示
  11. python控制语句字符串截取_python字符串截取如何操作
  12. 基于单片机倾角检测仪设计分享
  13. PTA-今天是本学期的第几周的第几天?
  14. Win10自带浏览器MicroEdge无法打开网页---解决办法
  15. 常见的用户密码加密方式以及破解方法
  16. 有源和无源设备的共质心布局:回顾和未来之路
  17. 富途最新股权曝光:腾讯持股21% 李华有67.4%投票权
  18. 程序设计天梯赛2021年选拔 L2-4红豆 (什么完全树给定后序遍历)
  19. 关于地下管线探测技术发展的思考
  20. Mysql数据库经验总结

热门文章

  1. 我的第一个MPI程序:利用矩形规则计算pi
  2. Particle Filter Tutorial 粒子滤波:从推导到应用(四)
  3. mysql时间间隔年份_MySQL DATEDIFF函数获取两个日期的时间间隔的方法
  4. oracle查询多张表交集,Oracle中对两个数据表交集的查询-专栏,ORACLE
  5. 力扣529.扫雷游戏
  6. unity最基本操作
  7. 第13章 线程安全与锁优化
  8. MySQL常用查询语句积累
  9. 20169210《Linux内核原理与分析》课程总结
  10. endnote导致word 2007很慢