记录技术旅程
分类: Android平台
2014-02-26 14:36:24
经过几天痛苦的努力,终于将andriod 4.4 的源码下载成功了。在这期间,浏览了许多网上的方法,都能完全解决问题。尤其是source.android.com描述的方法,由于更新滞后或者不适合中国国情,往往将人引入歧途。现在,将这几天的收获总结一下,避免大家再走弯路。
1. 选择Ubuntu 12.04版本的linux和VMware9.0的虚拟机。
由于一直用VMWare7.0+Ubuntu10.04,所以就象基于这个配置来下载编译Kitkat。但是,正是由于这个错误的决定,让自己浪费了两、三天的时间。首先,Ubuntu10.04 的source repository对应的是各种老版本的工具,比如 git。当然,你可以找到些方法去升级到最新版本,但是,还是要浪费时间。为什么不用Ubuntu12.04呢? 不要试图用VMWare7.x去安装Ubuntu12.04,你可能会遇到,图形界面启动不起来或者根本就是黑屏的情况,因为VMWare7.x太老了。
2. 选择64bit的Ubuntu,并且不要使用“Easy Install”去安装Ubuntu。
在 中有下面的两段话,我们应该注意。我们应该手动进行分区,swap区的大小将会影响今后的编译速度。并且,要给虚拟硬盘足够的空间。Android4.4本身就有9GB,加上repo下载总共将近30GB。最后,编译完,整个虚拟机的空间增加到了60GB。并且,在以后的编译过程中可能会打开CCACHE,这也需要大量的空间。所以,我设置硬盘最大值为100GB。
For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems.
Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.
为了下载和编译android4.4, source.android.com中已经描述了必需的安装包。但是,libgl1-mesa-glx:i386是有问题的,这个包不兼容12.04。所以,我们可以放弃这包。如果你试图按照系统提示安装这个包,可能会导致Ubuntu不能启动。
$ sudo apt-getinstall git gnupg flex bison gperf build-essential\ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev\ libx11-dev:i386 libreadline6-dev:i386\ libgl1-mesa-dev g++-multilib mingw32 tofrodos\ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln-s/usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so
source.android.com描述的又不可行了, JDK1.6的安装包已经无效了。所以,不能在使用apt-get install,下面是手动下载bin包后安装及配置方法。
第一步,到官方网站()下载jdk-6u45-linux-x64.bin(64位)。
第二步,把jdk-6u45-liux-x64.bin拷贝并安装在/usr/lib/jdk下面。别忘了将下载的bin问修改成可执行文件(chmod a+x)。如果安装目录并不是在/usr/lib/jdk/下,而是你自己的帐户目录下,请 将整个文件夹移动到/usr/lib/jdk/中。
第三步,安装完毕,下面配置环境变量配置classpath,修改所有用户的环境变量
sudo gedit /etc/profile
在文件最后添加
#set java environment
JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
export JRE_HOME=/usr/lib/jdk/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
第四步,切换系统默认的jdk。
sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.6.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.6.0_45/bin/javac 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
至此,环境应该准备好了,下一步将是下载Android 4.4源文件了。