编译Android 2.3.1 源代码心得

终于编译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 的源代码并解压;

4.  make clean(在编译之前先make clean会很方便的!)

如果原先有out文件夹,那么  make clean 后就没了

5.make

这是一个非常非常非常漫长的过程,等吧~~~~

6. 如果成功,会生成一个out文件夹,里面有三个文件夹:host,target和temp。看名字就知道他们的作用了,host是在PC上运行的(如SDK,emulator等),target是在目标板上运行的~~

target里有 system.img 、userdata.img、ramdisk.img三个文件。另外在这个目录下还有一些文件夹,有一些是和这三个文件一样的,只不过是没有打包的。

附一段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:

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.

其实解决方法很简单,只要在相应路径下新建一个platforms文件夹即可;

再次 ./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啦!

3. 下载Android SDK target:

选择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了,等比较长的时间后就可以看到效果了~~

3.

2../emulator,出现如下错误:

emulator: ERROR: You did not specify a virtual device name, and the system

directory could not be found.

If you are an Android SDK user, please use '@<name>' or '-avd <name>'

to start a given virtual device (see -help-avd for details).

Otherwise, follow the instructions in -help-disk-images to start the emulator

看来是我们没有创建device(avd),那就创建一个:

./android create avd --target 8 --name avd_mayq

提示没有sdk,那好吧,我们先make sdk:

相关推荐