[笔记分享] [Build] Android编译系统例子分析
例子的Android.mk如下:
当我们使用 make hello_qisda 命令时,文件重要跟踪部分如下:
executable.mk文件中,
定义class和suffix变量后包含dynamic_binary.mk,在这个文件中获取下图所示需要的变量值。
这里就是一个模块编译所需要的规则了。我们在看dynamic_binary.mk。
得到了连接里所有的目标变量值
在binary.mk中:
从android.mk获取了各种源文件。
从android.mk中得到需要依赖的库文件。
到此,我们的依赖文件也都有了。最后看执行命令获取。在definition.mk中:
这样我们的目标文件、依赖文件、执行命令都有了。目标可以成功创建了。
对于其他的静态、动态库等目标程序的编译,也是大同小异,可自行分析。