- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
理解Android编译命令
理解Android编译命令
工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令.
一一、、引引言言
于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的
人都再熟悉不过的。
source /opt/android1204_17.conf
source setenv.sh
lunch
make -j12
记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就记不全或者忘记顺序,每次编译时还
需要看看自己的云笔记,冰冷的指令总是难以让我记忆。后来我决定认真研究下这个指令的含义。知其然还需知其所以然,这样能更深层
次的理解并记忆,才能与自身的知识体系建立强连接,或许还有意外收获,果然如此,接下来跟大家分享一下在研究上述几条指令含义的
过程中,深入了解到的Android Build(编译)系统。
二二、、编编译译命命令令
准备好编译环境后,编译Android源码的第一步是 source build/envsetup.sh,其中source命令就是用于运行shell脚本命令,功能等价
于”.”,因此该命令也等价于. build/envsetup.sh。在文件envsetup.sh声明了当前会话终端可用的命令,这里需要注意的是当前会话
终端,也就意味着每次新打开一个终端都必须再一次执行这些指令。起初并不理解为什么新开的终端不能直接执行make指令,到这里总算
明白了。
接下来,解释一下本文开头的引用的命令:
source /opt/android1204_17.conf //初始化jdk环境变量 (这个不是必需的,因厂商而异)
source setenv.sh //初始化编译环境,包括后面的lunch和make指令
lunch //指定此次编译的目标设备以及编译类型
make -j12 //开始编译,默认为编译整个系统,其中-j12代表的是编译的job数量为12。
所有的编译命令都在envsetup.sh文件能找到相对应的function ,比如上述的命令lunch,make,在文件一定能找到
function lunch( {
...
}
function make( {
...
}
source envsetup.sh,需要cd到setenv.sh文件所在路径执行,路径可能在build/envsetup.sh ,或者integrate/envsetup.sh ,再或者不排除有
些厂商会封装自己的.sh脚本,但核心思路是一致的。
具体实现这里就不展开说明,下面精炼地总结了一下各个指令用法和功效。
2.1 代代码码编编译译
编编译译指指令令 解解释释
m 在源码树的根目录执行编译
mm 编译当前路径下所有模块,但不包含依赖
mmm [module_path] 编译指定路径下所有模块,但不包含依赖
mma 编译当前路径下所有模块,且包含依赖
mmma [module_path] 编译指定路径下所有模块,且包含依赖
make [module_name] 无参数,则表示编译整个Android代码
下面列举部分模块的编译指令:
模模块块 make命命令令 mmm命命令令
init make init mmm s stem/core/init
z gote make app_process mmm frameworks/base/cmds/app_process
s stem_server make services mmm frameworks/base/services
java framework make framework mmm frameworks/base
framework资源 make framework-res mmm frameworks/base/core/res
jni framework make libandroid_runtime mmm frameworks/base/core/
您可能关注的文档
- 猪细小病毒VP2的原核表达与多克隆抗体制备_禹婷婷.pdf
- 猪细小病毒灭活疫苗安全性试验及佐剂的筛选_张超范.pdf
- 王英伟小学语文课堂教学中学生自主学习的教学反思.pdf
- 王衡 2017高考新课标1阅读D麒灵训练法.doc
- 王阳明心学的再认识.pdf
- 环境中汞污染来源_人体暴露途径及其检测方法_张燕萍.pdf
- 环境工程 第六章热量传递(极力推荐).ppt
- 环锭纺加捻三角区纤维转移机理及其运动规律分析_薛元.pdf
- 现代交换原理实验指导书V1.0.pdf
- 现代控制理论-第四章 极点配置问题.pdf
- 白疕、粉刺、蛇串疮.docx
- 厨热旺季技术强化考试.docx
- 巴西龟原名叫红耳龟.docx
- BS ISO 5060-2024 翻译服务 评估 翻译输出 ⼀般指导 中文版.pdf
- BS ISO 6893-2024 珠宝⾸饰和贵⾦属 小钻⽯批次的检验 术语、分类和测试方案 中文版.pdf
- BS ISO 5305-2024 UAS 噪声测量 (⽆人机系统)中文版.pdf
- BS ISO 5688-2024 纺织品 合成⻓丝 变形丝卷曲性能试验⽅法 中文版.pdf
- BS ISO 3900-2023 橡胶 丁腈胶乳 测定 结合丙烯腈含量 中文版.pdf
- 项目策划书模板.docx
- 八项质量管理原则的内容.docx
文档评论(0)