
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
工欲善其事,必先利其器,如果你对于想要深入学习Android源码,必须先掌握Android编译命令。先看达内长沙android培训为你列出的下面几条指令,相信编译过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脚本,但核心思路是一致的。