如何编译Android源代码
0.准备操作系统
如果需要编译的版本<=2.2 可以用32位的linux,如果是>2.2的版本,要用64位的linux
推荐Ubuntu
1. 安装需要的工具
参考这个链接:http://source.android.com/source/download.html
点Source > Getting the source
你可能会纠结于使用java1.5还是1.6, 当你想编译Android比较早的版本时,会发现其实java1.5已经不被支持了,所以你在Ubuntu下直接apt-get是找不到的,这时你需要参考这个链接:http://blog.enea.com/Blog/bid/32050/Ubuntu-9-10-Java-5-and-the-Android-Open-Source-Project
当你的系统中安装了多个版本的java时,你可以通过 sudo update-alternatives --config java 来选择你需要用的java版本。
2.Android的编译主要是用git,当你会看到google主要是用的工具叫做repo,这个其实是个python脚本,你需要手动下载它:
下载repo脚本并使其可执行:
1 $ curl http://android.git.kernel.org/repo >~/bin/repo
2 $ chmod a+x ~/bin/repo
4)初始化repo
repo是android对git的一个封装,简化了一些git的操作。
下一步就是使用repo去初始化代码,和下载代码:repo init -u git://android.git.kernel.org/platform/manifest.git
这样默认是下载的代码树中的master,如果需要别的分支可以参考 http://source.android.com/source/download.html
这里请注意,默认下载的时候是不包含kernel的源代码的,如果你需要kernel的源代码,你可以参考这个链接:
http://elinux.org/Android_Kernel_Download
3.一些奇怪的问题:
我安装的是32bit的Ubuntu,在编译主干的代码时,报错说我需要64位的系统,还说需要java1.6。
你可以这样解决:sudo apt-get install sun-java1.6-sdk
然后给自己修改源代码,具体方法可以参考:
http://groups.google.com/group/android-platform/browse_thread/thread/b0bb991131589363
4.make