近日接手了后续android新平台项目搭建的任务。本文内容基于sprd公司提供的android5.1源码。一、一般的编译工作流程我们代码一般情况下是从芯片商SPRD/MTK获得的。源码的编译上,一般还是和google官网(http://source.android.com/sou ...
近日接手了后续android新平台项目搭建的任务。
本文内容基于sprd公司提供的android5.1源码。
一、一般的编译工作流程
我们代码一般情况下是从芯片商SPRD/MTK获得的。
源码的编译上,一般还是和google官网(http://source.android.com/source/building.html)上要求的一致。分为三步:
1.source build/envsetup.sh
2.lunch xxx
3.make -j8 2>&1 |tee build.log
4.mmm "模块"可以编译单独的模块(要全编译后才可以编译模块)
二、原理
android的编译是基于的linux的make命令的。Make命令在执行的时候,默认会在当前目录找到一个Makefile文件,然后根据Makefile文件中的指令来对代码进行编译。
Makefile文件最基础的功能就是描述文件之间的依赖关系,以及怎么处理这些依赖关系。
整个android源码的编译就是由根目录的Makefile文件来执行的。
现在我们就了解下我们编译过程中的命令做了哪些事情。
1.source build/envsetup.sh
执行build/envsetup.sh脚本(ps: source xx.sh命令就是 执行一个脚本的意思。那为什么不直接./xxx.sh呢? 见这篇文章http://blog.csdn.net/coofive/article/details/671835)
build/envsetup.sh脚本里做了哪些事情呢?
(1)遍历出device/xxx/xxx/里 所有的 envsetup.sh文件,并将他们都source进来,
这些 envsetup.sh里面有哪些代码呢
举一个例子 device/sprd/zsl1805/lava/envsetup.sh
add_lunch_combo zsl1805_lava-userdebugadd_lunch_combo zsl1805_lava-user
原标题:android编译系统学习
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。