你的位置:首页 > 软件开发 > 操作系统 > android编译系统学习

android编译系统学习

发布时间:2016-01-21 12:00:04
近日接手了后续android新平台项目搭建的任务。本文内容基于sprd公司提供的android5.1源码。一、一般的编译工作流程我们代码一般情况下是从芯片商SPRD/MTK获得的。源码的编译上,一般还是和google官网(http://source.android.com/sou ...

android编译系统学习

近日接手了后续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 (#换成@)。

可能感兴趣文章

我的浏览记录