经过了痛苦的挣扎,终于编译Android 2.3.1 源代码通过了!!!这里介绍一下过程:
1.
在编译之前,先安装好以下的库:
sudo apt-get install bison
sudo apt-get install zlib1g-dev
sudo apt-get install lib64z1-dev
sudo apt-get install flex
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev
sudo apt-get install gperf
以上可能不全,具体等编译的时候缺哪个库再去下就行了~~
2.
安装Java 6 JDK:
sudo apt-get install sun-java6-jdk
3.
下载Android 2.3.1 的源代码并解压;
这部分要用git下载,比较复杂,再加上http://www.kernel.org/最近被黑客入侵,服务器down掉了,所以没有办法下载源代码了,我是用的就是老师给我的SDK源代码。(关于如何git下载源代码我会在之后再写一篇博文,这里先占个地方)。
4.
make clean(在编译之前先make clean会很方便的!)
如果原先有out文件夹,那么 make clean 后就没了
5.make
这是一个非常非常非常漫长的过程(我Intel 双核两个多小时),等吧~~~~
6.
如果成功,会生成一个out文件夹,里面有三个文件夹:host,target和temp。看名字就知道他们的作用了,host是在PC上运行的(如SDK,emulator等),target是在目标板上运行的。target里有 system.img 、userdata.img、ramdisk.img三个文件。另外在这个目录下还有一些文件夹,有一些是和这三个文件一样的,只不过是没有打包的。关于这三个文件的详细解释可以参考下面这个网址:http://pccp.me/archives/39.html 讲的很详细的(这个我也摘录下来了,可以看http://blog.csdn.net/htttw/article/details/6783604)。
最后:
附一段make编译成功的输出:
Target system fs image: out/target/product/sdkDemo/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/sdkDemo/system.img
Target ram disk: out/target/product/sdkDemo/ramdisk.img
Target userdata fs image: out/target/product/sdkDemo/userdata.img
Installed file list: out/target/product/sdkDemo/installed-files.txt
下面来启动我们自己编译好的Android SDK:
(我们以前都是从http://developer.android.com/sdk/index.html上下载已经编译好的SDK的,这回要启动我们自己的SDK啦!)
1.
cd out/host/linux-x86/bin/
2.
./android
提示没有设置ANDROID_SWT,添加如下环境变量:
export ANDROID_SWT=/home/hutao/Android_project/gingerbread/out/host/linux-x86/framework/(注意:这是你自己的framework路径!)
再次 ./android,错误:
Error: Error parsing the sdk.
Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
再次 ./android,错误:
Error: Error parsing the sdk.
Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
最后终于启动Android SDK啦!
(下面的使用步骤和使用官方下载的SDK一样)
3.
下载Android SDK target:
在SDK中选择available packages,选择相应的Android SDK Platform以及API,点击Refresh,后面就开始下载了~~
4.
为Android SDK建立一个avd(android virtual disk):
在virtual devices里点“New”,填上Name和target,之后点Create AVD,这样就建好了一个avd
5.
在主界面中点start就启动emulator了,一开始是ANDROID的字样一闪一闪的,等比较长的时间后就可以看到Android界面了~~
完成!