理解 Android Build 系统_Make 目标说明_5

来源:互联网 发布:土行孙软件 编辑:程序博客网 时间:2024/05/16 11:57


make /make droid

如果在源码树的根目录直接调用“make”命令而不指定任何目标,则会选择默认目标:“droid”(在 main.mk 中定义)。因此,这和执行“make droid”效果是一样的。

droid 目标将编译出整个系统的镜像。从源代码到编译出系统镜像,整个编译过程非常复杂。这个过程并不是在 droid 一个目标中定义的,而是 droid 目标会依赖许多其他的目标,这些目标的互相配合导致了整个系统的编译。

图 6 描述了 droid 目标所依赖的其他目标:

图 6. droid 目标所依赖的其他 Make 目标
图 6. droid 目标所依赖的其他 Make 目标

图 6 中这些目标的说明如表 4 所示:

表 4. droid 所依赖的其他 Make 目标的说明
名称说明apps_only该目标将编译出当前配置下不包含 user,userdebug,eng 标签(关于标签,请参见后文“添加新的模块”)的应用程序。droidcore该目标仅仅是所依赖的几个目标的组合,其本身不做更多的处理。dist_files该目标用来拷贝文件到 /out/dist 目录。files该目标仅仅是所依赖的几个目标的组合,其本身不做更多的处理。prebuilt该目标依赖于 $(ALL_PREBUILT)$(ALL_PREBUILT)的作用就是处理所有已编译好的文件。$(modules_to_install)modules_to_install 变量包含了当前配置下所有会被安装的模块(一个模块是否会被安装依赖于该产品的配置文件,模块的标签等信息),因此该目标将导致所有会被安装的模块的编译。$(modules_to_check)该目标用来确保我们定义的构建模块是没有冗余的。$(INSTALLED_ANDROID_INFO_TXT_TARGET)该目标会生成一个关于当前 Build 配置的设备信息的文件,该文件的生成路径是:out/target/product/<product_name>/android-info.txtsystemimage生成 system.img。$(INSTALLED_BOOTIMAGE_TARGET)生成 boot.img。$(INSTALLED_RECOVERYIMAGE_TARGET)生成 recovery.img。$(INSTALLED_USERDATAIMAGE_TARGET)生成 userdata.img。$(INSTALLED_CACHEIMAGE_TARGET)生成 cache.img。$(INSTALLED_FILES_FILE)该目标会生成 out/target/product/<product_name>/ installed-files.txt 文件,该文件中内容是当前系统镜像中已经安装的文件列表。

其他目标

Build 系统中包含的其他一些 Make 目标说明如表 5 所示:

表 5. 其他主要 Make 目标
Make 目标说明make clean执行清理,等同于:rm -rf out/。make sdk编译出 Android 的 SDK。make clean-sdk清理 SDK 的编译产物。make update-api更新 API。在 framework API 改动之后,需要首先执行该命令来更新 API,公开的 API 记录在 frameworks/base/api 目录下。make dist执行 Build,并将 MAKECMDGOALS 变量定义的输出文件拷贝到 /out/dist 目录。make all编译所有内容,不管当前产品的定义中是否会包含。make help帮助信息,显示主要的 make 目标。make snod从已经编译出的包快速重建系统镜像。make libandroid_runtime编译所有 JNI framework 内容。makeframework编译所有 Java framework 内容。makeservices编译系统服务和相关内容。make <local_target>编译一个指定的模块,local_target 为模块的名称。make clean-<local_target>清理一个指定模块的编译结果。makedump-products显示所有产品的编译配置信息,例如:产品名,产品支持的地区语言,产品中会包含的模块等信息。makePRODUCT-xxx-yyy编译某个指定的产品。makebootimage生成 boot.imgmakerecoveryimage生成 recovery.imgmakeuserdataimage生成 userdata.imgmakecacheimage生成 cache.img
0 0