1.config.mk
定义标准源文件路径:Standard source directories(such as:SRC_HEADERS)
include $(BUILD_SYSTEM)/pathmap.mk
Build system internal files(such as:CLEAR_VARS BUILD_EXECUTABLE)
include $(BUILD_SYSTEM)/envsetup.mk
Generic tools
2.base_rules.mk
对模块进行处理的基础文件
3.Android.mk
Android进行编译的时候会通过下面的函数来遍历所有子目录中的Android.mk,一旦找到就不会再往层子目录继续寻找(所有你的模块定义的顶层Android.mk必须包含自己定义的子目录中的Android.mk)
Android通过LOCAL_MODULE_TAGS来决定哪些本地模块会不会编译进系统,通过PRODUCT和LOCAL_MODULE_TAGS来决定哪些应用包会编译进系统,如果用户不指定LOCAL_MODULE_TAGS,默认它的值是user。此外用户可以通过buildspec.mk来指定你需要编译进系统的模块。
4.build/core/Makefile
定义了生成各种img的方式,包括ramdisk.img userdata.img system.img update.zip recover.img等
所有的Makefile都通过build/core/main.mk这个文件组织在一起,它定义了一个默认goals:droid,当我们在TOP目录下敲Make实际上就等同于我们执行make droid。当Make include所有的文件,完成对所有make文件的解析以后就会寻找生成droid的规则,依次生成它的依赖,直到所有满足的模块被编译好,然后使用相应的工具打包成相应的img。