Ubuntu 12.04 编译Android 4.2 源码

来源:互联网 发布:比特精灵for mac版 编辑:程序博客网 时间:2024/06/05 09:23

一,初始化编译环境
1.安装JDK
android2.2及以下版本需要安装JDK5,android2.3及以上版本需要安装JDK6,JDK7是不支持的会报错。
Ubuntu12.04 已经不支持直接用  $ sudo apt-get install sun-java6-jdk 安装jdk6了。
Oracle公司的官方下载链接: 官网下载JDK6
我这里选择了Linux x64 版本的 jdk-6u37-linux-x64.bin
建立安装目录,并复制安装文件jdk-6u37-linux-x64.bin到安装目录/opt/java

$ sudo mkdir /opt/java$ sudo cp -r ~/下载/jdk-6u37-linux-x64.bin /opt/java

为jdk-6u37-linux-x64.bin增加执行权限

$ sudo chmod u+x /opt/java/jdk-6u37-linux-x64.bin

执行jdk-6u37-linux-x64.bin,将JDK6的相关文件解包至jdk1.6.0_37目录下

$ sudo ./jdk-6u37-linux-x64.bin

设置jdk环境变量

$ sudo gedit ~/.profile

把jdk安装路径加入到PATH,如下

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:/opt/java/jdk1.6.0_37/bin:$PATH"
fi

测试jdk?
执行java -version可以看到当前JDK的版本信息,表示安装成功。显示如下:

$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)

2,在Ubuntu 12.04 上需要安装以下包:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \  libgl1-mesa-dev g++-multilib mingw32 tofrodos \  python-markdown libxml2-utils xsltproc zlib1g-dev:i386

二下载 Android 4.2 源码
建立~/bin/路径并将其加入到PATH

$ mkdir ~/bin $ PATH=~/bin:$PATH

下载 Repo 并为其添加执行权限

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo

建立源码目录并进入

$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY

运行

$ repo init -u https://android.googlesource.com/platform/manifest

下载 Android 4.2 这个分支的源码

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2_r1

6、开始下载源码

$ repo sync

支持断点续传,可以俺 Ctrl + Z 键暂停,进源码目录,

$ repo sync

继续。

三 设置 ccache (能加快编译速度)
打开 ~/.bashrc文件,加入一下

设置ccache 变量,1表示使用ccache 编译缓存

export USE_CCACHE=1

设置ccache目录

export CCACHE_DIR=<path-to-your-cache-directory> 

设置 ccache 允许使用空间大小,Google 官方推荐50G,我实际才用了不到5G

prebuilts/misc/linux-x86/ccache/ccache -M 50G