网站大量收购独家精品文档,联系QQ:2885784924

android build子系统解析.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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精品文档

相关文档