- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 八年级月度检测物理试题.doc
- 耳机常用英语词汇表.doc
- 【中考命题研究】(怀化专版)2016中考物理 第二编 重点题型突破 专题三 作图题(无答案).doc
- MBA英语A4及答案.doc
- 高一升高二衔接练习一.doc
- 安徒生童话:癞蛤蟆(英).doc
- 国庆节红色派对.doc
- 年度十大英语新词.doc
- 过滤器在线测试.doc
- 六级核心短语.doc
- 东南亚小厨电电商行业市场洞察报告(2025年6月版)-TMO探谋.docx
- 合成生物学:2024年专题信息合辑-上海市生物工程学会.pdf
- 2024-2025学年江苏省东南中学高三高考考前精品卷英语试题含解析.doc
- 2024-2025学年吉林省通榆县第一中高考语文试题三模试卷含解析.doc
- 2024-2025学年湖南省浏阳一中、株洲二中重点中学高三下学期第一次统一考试(1月)英语试题含解析.doc
- 2024-2025学年吉林省长春市外国语学校高三第二次联考考语文试题理试题含解析.doc
- 2024-2025学年江苏省大丰市实验初级中学下学期高三英语试题3月考前密卷考试试卷含解析.doc
- 2024-2025学年吉林汪清县第六中学普通高中毕业班高考适应性测试英语试题含解析.doc
- 2024-2025学年江苏省高三毕业班第十七模语文试题含解析.doc
- 2024-2025学年江苏省七校联盟第二学期期末检测试题高三语文试题含解析.doc
最近下载
- 浙江省杭州市八县区2023-2024学年八年级下学期期末考试道德与法治试卷(含答案).pdf VIP
- 串联盘式励磁磁力制热系统及其制热方法.pdf VIP
- 西安交通大学23春“法学”《科技法学》平时作业试题库附答案.docx VIP
- 2025必威体育精装版消毒技能竞赛个人竞赛试题(+答案).docx VIP
- 2025年班组长综合管理技能竞赛理论考试题库500题(含答案).doc VIP
- 《高性能纳米保温材料》课件.ppt VIP
- 学龄前儿童感觉处理测量量表的汉化及信度与效度研究.PDF VIP
- 跨学科项目式学习背景下,人工智能在小学科学教育中的应用教学研究课题报告.docx
- 霍兰德职业兴趣测试量表及答案对照表.docx VIP
- 浙江省消防技术规范难点问题操作技术指南-2025修订稿(定稿).pdf VIP
文档评论(0)