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
然后执行命令:
然后一路回车,当屏幕提示输入yes/no时,输入y并回车
成功安装完JDK后,接下来需要对JDK进行配置,在/etc/environment文件中增加下面的代码
$ sudo gedit /etc/environment
安装一些编译所需软件
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.youkuaiyun.com/lengxibo/article/details/8303113