一、预备知识
Android编译最权威的网站是Android Developer(http://developer.android.com/index.html),该网站未出了Google提供的关于Android的全部信息,如Android版本介绍;给开发者提供的SDK;为开源爱好者提供的源码。大陆对Google的网站有所限制,登录Android Developer网站有些卡,和源码相关的页面为http://source.android.com/,可以直接登录。
二、Android源码编译
在页面http://source.android.com/source/index.html介绍里Android编译的详细过程:
- Initializing the Build Environment
- Downloading the Source
- Building and Running
- Building for Devices
- Building Kernels
- Known Issues
2.1 JDK的安装
按照网站提供的方法并不能正确安装,Ubuntu 10.04 LTS下具体安装JDK步骤可以参考:
http://blog.csdn.net/wu070815/article/details/8185353
2.2 Android源码下载
为了防止对源码的无秩序下载,Google对源码的下载进行了限制,建议使用Google认证的方式进行下下载,实现方法如下:
http://blog.csdn.net/wu070815/article/details/8186623
2.3 Exited sync due to gc errors 的解决方法
2.4 /bin/bash: jar:找不到命令
出现这种情况多半是因为/usr/bin/jar没有链接到正确的jar包,确保链接/usr/bin/java、/usr/bin/javac、/usr/bin/jar全部指向了当前需要使用的java包的对应文件。具体步骤参考2.1。
2.5 /bin/bash: javadoc:找不到命令
找不到javadoc指令,javadoc实际上是和java、javac、jar指令一样,存在$JAVA_HOME/bin目录下的,但是bash习惯性的去到/usr/bin/目录下去找,因此可以在/usr/bin/目录下建立一个指向$JAVA_HOME/bin/javadoc的链接,指令格式如下:
cd /usr/bin/
ln -s $JAVA_HOME/bin/javadoc javadoc
2.6 NAND: could not open file /home/android/Android4.0.4Proj/out/target/product/generic/system.img, Permission denied
有些版本的Android源码编译后运行emulator会出现这种情况,需要修改system.img的权限。
cd /out/target/product/generic
sudo chmod 755 system.img
2.6 NAND: acp: unable to remove 'out/target/common/obj/JAVA_LIBRARIES/core_intermediates/emma_out/lib/classes-jarjar.jar': Permission denied
make指令运行时,出现Permission denied一般是权限问题,在make前加sudo。
待续。。。。