当前位置: 首页 > web >正文

Android源码编译命令详解

一、引言

先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。

source setenv.sh
lunch
make -j8

记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就记不全或者忘记顺序,每次编译时还需要看看自己的云笔记,冰冷的指令总是难以让我记忆。后来我决定认真研究下这个指令的含义。知其然还需知其所以然,这样能更深层次的理解并记忆,才能与自身的知识体系建立强连接,或许还有意外收获,果然如此,接下来跟大家分享一下在研究上述几条指令含义的过程中,深入了解到的Android Build(编译)系统。

二、编译命令

准备好编译环境后,编译Android源码的第一步是 source build/envsetup.sh,其中source命令就是用于运行shell脚本命令,功能等价于”.”,因此该命令也等价于 . build/envsetup.sh 。在文件 envsetup.sh 声明了当前会话终端可用的命令,这里需要注意的是当前会话终端,也就意味着每次新打开一个终端都必须再一次执行这些指令。起初并不理解为什么新开的终端不能直接执行make指令,到这里总算明白了。

接下来,解释一下本文开头的引用的命令:

source setenv.sh  //初始化编译环境,包括后面的lunch和make指令
lunch  //指定此次编译的目标设备以及编译类型
make  -j8 //开始编译,默认为编译整个系统,其中-j8代表的是编译的job数量为8。

所有的编译命令都在envsetup.sh文件能找到相对应的function,比如上述的命令lunchmake,在文件一定能找到

function lunch(){...
}function make(){...
}

source envsetup.sh,需要cd到setenv.sh文件所在路径执行,路径可能在build/envsetup.sh,或者integrate/envsetup.sh,再或者不排除有些厂商会封装自己的.sh脚本,但核心思路是一致的。

具体实现这里就不展开说明,下面精炼地总结了一下各个指令用法和功效。

</

http://www.xdnf.cn/news/2600.html

相关文章:

  • 基于 Amazon RDS 数据库之间复制数据并屏蔽个人身份信息
  • 写读后感的时候,可以适当地引用书中的内容吗?
  • 【JavaGUI】
  • 边缘函数:全栈开发的最后1毫秒性能革命
  • MQTT - MQTT 实践(Windows EMQX、MQTTX、客户端认证、连接与主题)
  • ES练习册
  • Java多线程实现顺序执行
  • [计算机科学#3]:布尔逻辑 (计算机数学基础)
  • Python第三周作业
  • 语音合成之八-情感化语音合成的演进路线
  • [ECCV 2024]UMBRAE: Unified Multimodal Brain Decoding
  • 赞奇AIknow是什么?
  • 2025年8月PMP考试费用上涨?8月PMP考试费用解析!
  • 电力系统失步解列与振荡解析
  • 基于知识库的智能客户服务工具
  • Tailwind CSS 实战:基于 Kooboo 构建企业官网页面(二)
  • runtimeChunk的作用
  • Servlet (简单的servlet的hello world程序)
  • SAP-pp 怎么通过底表的手段查找BOM的全部ECN变更历史
  • 小红书笔记详情API接口概述及JSON数据返回参考
  • element通过业务按钮点击导入,调用el-upload的导入方法
  • Redis缓存问题的深度解析与解决方案
  • c++的匿名函数捕获
  • 代码小优化
  • Babel、core-js、Loader之间的关系和作用全解析
  • 人类社会的第四阶段
  • 【C语言练习】006. 编写条件语句处理不同情况
  • Spring中生成Bean的方式总结-笔记
  • Customizing Materials Management with SAP ERP Operations
  • Spark-Streaming核心编程内容总结