Android中make命令的目标
source link: https://note.qidong.name/2017/08/android-make-targets/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Android中make命令的目标
2017-08-04 18:26:33 +08 字数:1157 标签: Android Makefile
make命令的Target,由Makefile决定。
一般情况下,make <TAB>
可以通过Bash的补全,看到一个Makefile的所有Target。
而Android中的Makefile过于复杂,补全时会卡住,难以列出。
本文记录一些Android(8.0.0)平台项目中有用的make目标。
产物目标 ¶
Target Description all 编译Android的一切(部分Target例外)。 droid Android项目的默认Target,make droid
等价于make
。
droidcore
Android核心的产物,如system.img、boot.img等。
snod
快速重新编译system.img。
vnod
快速重新编译vendor image。
libandroid_runtime
编译JNI framework。
framework
编译Java framework。
services
编译系统服务(Java)与相关。
apps_only
Android平台自带的上层应用。
files
编译所有会真正安装到ROM中的Module。
sdk
编译生成Android SDK。
ndk
编译生成Android NDK。
docs
在out/target/common/docs
生成文档。
notice_files
生成所有NOTICE文件。
javac-check
用javac(而非jack)编译java文件,需要在已经完整编译后使用。
Target之间,也是有复杂的相互关系的。 droid大概由droidcore(主要是中下层)和apps_only(主要是上层)两部分组成,而droidcore与apps_only也并非没有交集。
droidcore里还依赖了以下Target,其含义不做一一解释,但很容易猜出。
- ramdisk
- systemtarball
- boottarball
- userdataimage
- userdatatarball
- cacheimage
- bptimage
- vendorimage
- systemotherimage
- bootimage
- vbmetaimage
- auxiliary
特殊目标 ¶
Target Description help 显示几个常用的Target。 nothing 把所有Makefile都跑一遍,但什么也不干。 clean 清理产物,等价于rm -rf out
。
modules
打印所有参与编译的LOCAL_MODULE。
showcommands
打印所有编译过程中实际执行的命令。(在Ninja中无用,大概已废弃。)
package-stats
统计所有以BUILD_PACKAGE形式生成的产物信息,包括位置、大小、dex占比等。
installed-file-list
生成installed-file.txt
文件,内含所有要安装到ROM的文件与大小。
单独模块 ¶
Target Description<local_module>
单独编译某个模块
clean-<local_module>
单独清理某个模块
在已经成功编译过一次的情况下,可以通过指定LOCAL_MODULE,从项目根目录重新编译。
比如make netd
,可以单独编译system/netd
。
此外,通过mm
、mmm
等命令,也可以实现单独编译功能。
区别是,mm
需要在当前目录下有Android.mk
的位置执行,而mmm
需要给定一个有Android.mk
的路径。
比如,cd system/netd; mm
,mmm system/netd
。
其它 ¶
在AOSP(8.0)上,光是LOCAL_MODULE已经有了上万个,Target数目还在持续增长。
想查看其它的Target,可以从build/make/core/main.mk
中,按图索骥。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK