- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 八年级月度检测物理试题.doc
- 耳机常用英语词汇表.doc
- 【中考命题研究】(怀化专版)2016中考物理 第二编 重点题型突破 专题三 作图题(无答案).doc
- MBA英语A4及答案.doc
- 高一升高二衔接练习一.doc
- 安徒生童话:癞蛤蟆(英).doc
- 国庆节红色派对.doc
- 年度十大英语新词.doc
- 过滤器在线测试.doc
- 六级核心短语.doc
- GB/T 45128-2025塑料 含水量的测定.pdf
- 《GB/T 45128-2025塑料 含水量的测定》.pdf
- 《GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法》.pdf
- 中国国家标准 GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- 中国国家标准 GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
- 《GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD)》.pdf
- 中国国家标准 GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
文档评论(0)