Android 编译系统–用作记录
一 源码编译准备
- source build/envsetup.sh //Invoke ". build/envsetup.sh" from your shell to add the following functions to your
- choosecombo //在执行choosecombo过程中会选择分支,也可以直接执行lunch命令选择编译的分支
- make -j4 //开始编译
二 开始编译
在命令行执行了make命令后,这个时候这个系统就开始编译,在执行命令后会在源码根目录寻找Makefile文件,
### DO NOT EDIT THIS FILE ###
include build/core/main.mk
### DO NOT EDIT THIS FILE ###
在根目录的Makefile中只是include了main.mk文件,接下来所有的工作从main.mk文件开始,
盗用一张图:
具体的介绍参考文章: https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/
接下来提出两个问题:
1 编译系统是如何来包含产品? product.mk
2 怎样编译生产相关的文件镜像? config.mk–>Makefile
Android.mk
Android.mk也是Makefile文件,符合Makefile的文件语法,只是在编写Android.mk的时候会用到在config.mk中定义的宏,在Android.mk文件中可以控制子项目编译为apk,静态库,动态库等。
1 如何变为apk,静态库,动态库?
2 如何引入静态库?
3 如何引入动态库?
4 如何引入第三方头文件?