Android Makefile中是 如何识别 TARGET_PRODUCT
首先, 编译Android 代码 通常情况下使用: # make showcommands 这实际上等价于下面的完整命令 (具体参见 build/core/envsetup.mk ) # TARGET_ARCH=arm TARGET_PRODUCT=generic TARGET_BUILD_TYPE=release make showcommands 可见,默认情况下编译系统认为TARGET_PRODUCT 是generic 的 那如何编译特定产品的Android呢? 这就需要查看Android Makefile是如何解析环境变量TARGET_PRODUCT的。 Android Makefile 的引用关系是这样的 Makefile -> build/core/main.mk -> build/core/config.mk -> build/core/envsetup.mk -> build/core/product_config.mk 在build/core/product_config.mk 中编译系统首先调用 build/core/product.mk中定义的函数get-all-product-makefiles ,来 遍历整个vendor 的子目录, 找到vendor下所有的 AndroidProducts.mk, 不同子目录下的AndroidProducts.mk