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

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.mrgr.cn/news/100444.html

相关文章:

  • 深入理解布隆过滤器:参数设定与优化
  • 论文导读 - 基于大规模测量与多任务深度学习的电子鼻系统实现目标识别、浓度预测与状态判断
  • C++ ——引用
  • 大模型应用实战:深入理解模型上下文协议 MCP
  • 2025 FIC wp
  • 关系型数据库PostgreSQL for Mac 保姆级使用教程
  • C++初阶-模板初阶
  • 计算机网络学习笔记 4-6章
  • java异常
  • Appium自动化开发环境搭建
  • 虚函数表的设计和多态的实现
  • 关于Android Studio的AndroidManifest.xml的详解
  • pyspark将hive数据写入Excel文件中
  • 视觉/深度学习/机器学习相关面经总结(2)(持续更新)
  • 合理布局结构体,精打细算 cacheline
  • MCP实战派【1】-SSE
  • Arduino 入门学习笔记(六):外部中断实验
  • 基于知识库的智能客户服务工具
  • 辞九门回忆
  • 练习普通话,声音细柔和