Android 系统(140)---android.mk中几个常见配置
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 …
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 …
Android 系统(140)---android.mk中几个常见配置相关推荐
- android.mk中几个常见配置
1.LOCAL_JACK_ENABLED 这个变量可以禁止使用Jack编译工具链编译该模块.在工作中,个人感觉目前jack工具链不是很稳定,经常会出现一些错误,比如: ERROR: Security ...
- Android系统在新进程中启动自定义服务过程(startService)的原理分析 (下)
Step 10. ActivityManagerService.attachApplicationLocked 这个函数定义在frameworks/base/services/java/com/and ...
- 【android系统】android系统升级流程分析(一)---recovery模式中进行update包升级流程分析
今天我们直接来看下android中具体的升级过程是如何的. 升级流程概述 升级的流程图: 升级流程分析 第一步:升级包获取 升级获取可以通过远程下载,也可直接拷贝到指定目录即可. 第二步:准备升级 然 ...
- Android 系统(191)---ODM 开发用户常见需求文档(九)
Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...
- 【android系统】android系统升级流程分析(二)---update升级包分析
接下来我们将通过几篇文章来分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.今天让我先来分析下升级包update.zip. 一 ...
- Android系统架构-[Android取经之路]
摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...
- android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...
Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...
- 如何获得android系统版本,Android如何获得系统版本
Android如何获得系统版本 如何获得Android系统版本 项目移植中,遇到需要区分不同系统版本的问题.于是查找相关方法如下: android.os.Build类提供了当前系统信息. 可用if ( ...
- android log抓取方法,Android系统之Android抓取各种log的方法
Android系统之Android抓取各种log的方法 2018年11月25日 | 萬仟网移动技术 | 我要评论 android之android抓取各种log的方法 1.logcat (四类log b ...
最新文章
- (C#)WinForm窗体间传值
- 500 OOPS:cannot change directory:/root 问题
- centos 7 Chrony 集群同步时间
- JDBC的入门案列以及JDBC的对事务的管理
- Memcached 数据缓存系统
- js (javascript) 中获取年月日信息
- Windows进程系列(2) -- Svchost进程
- linux统计所有进程总共占用多少内存?
- inDesign教程,如何在文档中添加链接和动画?
- HighCharts:PlotLine的label文字不显示
- python控制语句字符串截取_python字符串截取如何操作
- 基于单片机倾角检测仪设计分享
- PTA-今天是本学期的第几周的第几天?
- Win10自带浏览器MicroEdge无法打开网页---解决办法
- 常见的用户密码加密方式以及破解方法
- 有源和无源设备的共质心布局:回顾和未来之路
- 富途最新股权曝光:腾讯持股21% 李华有67.4%投票权
- 程序设计天梯赛2021年选拔 L2-4红豆 (什么完全树给定后序遍历)
- 关于地下管线探测技术发展的思考
- Mysql数据库经验总结