Android 编译系统的组成
Android 和 Linux 的编译系统都是通过 Makefile 工具来组织编译源代码的。
Makefile 工具用来解释和执行 Makefile 文件,在 Makefile 文件里定义好工程源代码的编译规则,通过 make 命令即可以完成对整个工程的自动编译。
1、Makefile:编译系统的入口 Makefile 文件,在系统根目录下,只有一行代码,包含 build/core/main.mk。
2、build/core/main.mk:主要 Makefile,定义了 Android 编译系统的主线。
3、build/core/config.mk:根据用户输入的编译选项导出配置变量,影响编译目标。
4、build/core/envsetup.mk:定义大量全局变量,用户编译配置。
5、build/core/product_config.mk:根据用户选择的目标产品,定义编译结果输出目录。
6、device/*/$(TARGET_DEVICE)/BoardConfig.mk:根据用户选择的目标产品找到对应的设备 TARGET_DEVICE,加载设备的板级配置。
7、build/core/definitions.mk:定义编译过程中用到的大多数变量和宏,是编译系统的函数库。
8、MODULES_DIR/Android.mk:每个模块的规则定义文件,它出现在每个要编译的目录下,我们可以向 Android 系统中添加自己的模块,来达到定制系统的目的。
9、build/core/Makefile:Android 编译目标规则定义文件,最终编译结果在该文件中定义,如 system.img、boot.img 等。