天天看点

android4.2源码编译全过程

1、编译环境的安装

一、安装JDK

下载JDK1.6

官方网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html

根据自己的系统选择对应的版本,我下载的是jdk-6u38-linux-x64.bin

备注:编译android4.2时,对JDK的版本是有要求的,开始我下载了最新的JDK1.7,编译的时候提示版本不符,需要JDK1.6版本。

安装JDK1.6

由于刚下载的文件jdk-6u38-linux-x64.bin文件是没有执行权限的,所以需要将安装文件赋予可执行权限

 $ sudo chmod u+x jdk-6u38-linux-x64.bin

然后执行命令:

./ jdk-6u38-linux-x64.bin

然后一路回车,当屏幕提示输入yes/no时,输入y并回车

成功安装完JDK后,接下来需要对JDK进行配置,在/etc/environment文件中增加下面的代码

$ sudo gedit /etc/environment 

android4.2源码编译全过程

安装一些编译所需软件

sudo apt-get install git-core gnupg flex bisongperf build-essential

sudo apt-get install zip curl zlib1g-devlibc6-dev lib32ncurses5-dev ia32-libs

sudo apt-get install x11proto-core-devlibx11-dev lib32z-dev libgl1-mesa-dev

sudo apt-get install  g++-multilib mingw32 tofrodos python-markdownlibxml2-utils xsltproc

以上分了四步安装,其实也可以一次性安装

2、编译源代码

编译初始化:

在终端中执行:

. build/envsetup.sh

选择编译目标

lunch full-eng

如果只输入lunch会输出一个选择列表,让你去选择要编译的目标。

说明:full是针对emulator编译全部包括app、输入法等,eng是指针对开发者编译,有最高权限

编译代码:

在终端中执行:make -j4

-j4:表示用四个线程来编译:

编译根据不同机器的配置不同所需时间也有很大差异,本人编译中间报了几次内存不足导致make被killed问题,浪费了不少时间,现在心里有底了,第一次编译时,尽量内存放大一点。编译时用到的内存包含物理内存、swap分区内存。在编译的时候两者都用完了,编译就会被killed导致中止。

最后一次修改增加内存后,顺利编过了,关于增加swap内存大小可以参考:

http://blog.csdn.net/lengxibo/article/details/8303113