理解Android编译命令.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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/

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档