android build子系统解析.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android build子系统解析

Android Building System 分析 设定档 Android building system 包括几种重要的设定档, * Android.mk * AndroidProducts.mk * target_os-arch.mk, host_os-arch.mk and os-arch.mk * BoardConfig.mk * buildspec.mk Android.mk 是 module 和 package 的设定档,每个 module/package 的目录下都会有一个 Android.mk。所谓的 module 是指系统的 native code ,相对于用 Java 写成的 Android application 称为 package。 AndroidProducts.mk 则设定 product 配置。 product 即特定系统版本,透过编译不同 product ,产生不同软件配置内容,安装不同的 application。 Product 可视为特定项目,产生特定规格系统。 BoardConfig.mk 是为 product 主板做设定,像是 driver 选择、设定。*os-arch.mk 则是针对选择的操作系统和 CPU 架构,进行相关设定。 buildspec.mk 是位于 source 根目录下,为进行编译者所做之额外设定。例如,可在此选择要产生的 product 、平台、额外的 module/package 等。 参数 build/envsetup.sh 实作一个 mm 指令,以编译单一 module,不需编译整个 source tree。ONE_SHOT_MAKEFILE 这个 makefile 变量/参数就是用以实作这个功能。使用方法是在执行 make 时,将该变量指定为 module 的 Android.mk。 * make ONE_SHOT_MAKEFILE=path to Androiod.mk 透过定义 CREATE_MODULE_INFO_FILE , building system 会将所有 module 信息列在 $(PRODUCT_OUT)/module-info.txt 档案里。 * make CREATE_MODULE_INFO_FILE=true 设定 BUILD_TINY_ANDROID=true , building system 产生一个简单的 image ,以测试硬件的可用度。此功能用于移植的早期阶段,以快速 bring up 。 HOST_BUILD_TYPE 和 TARGET_BUILD_TYPE 指定 building system 产生 binary 的目的为 debug 或 release 。透过设定此二变量,能产生包含 debug information 的 binry 。 * debug * release 这些参数,也可设于 buildspec.mk 里,以避免开发过程不断的重新指定。 Goals 一般编辑整个 Android 系统,就是使用 droid 这个 goal。 droid 会产生一个完整的系统,包括 bootloader、kernel、系统程序、模块和应用程序。 showcommands 和 droid 功能相同,但 droid 在编译过程不显示所使用的指令。透过 showcommands 这个 goal, building system 显示过程中每一个步骤的详细指令。 Makefile 的流程 * 初始化相关变数 * 侦测编译环境和目标环境 * 决定目标 product * 读取 product 的设定 * 读取 product 所指定之目标平台架构设定 o 选择 toolchain o 指定编译参数 (*os-arch.mk) * 清除输出目录 * 设定/检查版本编号 * 读取所有 BoardConfig.mk 档案 * 读取所有 module 的设定 * 根据设定,产生必需的 rule * 产生 image 以上的主要流程都是由 build/core/main.mk 所安排。 初始化和侦测 由 build/core/config.mk 所进行。 build/core/envsetup.mk 检查 developer 的设定 (buildspec.mk) ,并检查执行环境,以决定输出目录、项目。 build/core/config.mk 本身还依据参数,决定解译时的相关参数。像是 compiler 的路径、flag

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档