Androidandroid进阶系列(主要收集底层和反编译的文章)Android底层开发

4. Android编译过程及脚本分析

2019-10-28  本文已影响0人  瑟闻风倾

1. android编译过程

(1) 初始化参数设置(初始化编译环境):执行source build/envsetup.sh(加载指令和分支)
(2) 检查环境变量并配置目标环境:lunch 命令
(3) 选择 lunch:读取目标配置和平台信息
(4) 清空输出目录:out目录清掉才能够重新编译
(5) 执行编译:make -j16或make -j8
(6) 生成升级包:使用打包程序生成升级包

2. 编译过程及脚本分析

编译过程简单脚本分析.png

(1) .bulid/envsetup.sh 分析

问题:执行.bulid/envsetup.sh命令时,做了什么事情?
回答:执行.bulid/envsetup.sh命令时,做了加载编译命令加载平台信息(分支)两件事。加载编译命令后则可以在shell中使用envsetup.sh脚本文件中包含的各种编译命令,如下面所示的执行lunch命令获取所有的分支;加载平台信息后则可以获取对应的分支。

(2) lunch 分析

问题:lunch做了什么?如何增加和删除一个lunch?
回答:通过修改分支的源码来减少分支,通过复制分支并修改来增加分支。

3. android源码编译

备注:使用make命令make -j16make -j8进行源码编译。

编译.png

问题:如何使用android的编译命令编译单独的模块?
回答:通过make命令可以编译整个android源码;mm指令编译当前目录(单独模块的编译);mmm指令就是用来编译指定目录(单独模块的编译)。

上一篇下一篇

猜你喜欢

热点阅读