Ubuntu 10.10下编译Android 2.2平台


环境:Ubuntu 10.10 Android 2.2.2_r1 android-gldfish-2.6.29

 

0 说明

Android2.2platformkernel是分别的项目,要分别下载编译。本文是Ubuntu10.10 环境下Android2.2.2_r1平台(包含SDK)的编译。 

读者:希望深入Android底层开发者,如果只是ANDROID应用开发者,不用如此麻烦,直接下载现成的SDK以及其他相应工具即可。

 

一、环境准备

 

1.1.   安装Utunbu 10.10

在写此文时,ubuntu已经有更新的安装包发布,笔者没有更新。

 

1.2.   工具下载安装

www.bkjia.com@bkjia:~$sudo apt-get install git-core curl
www.bkjia.com@bkjia:~$sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip libncurses5-dev zlib1g-dev

 

1.3. SUN jdk 5.0下载安装

android2.2要求用SUN JDK5,而ubuntu10.10里安装的是JDK6,需要重新安装5.0jdk。用apt-get方法(1.3.1)简单易操作,可是笔者试着更新了很多源,但是都连接不上,所以用了直接下载安装的方法(1.3.2)。这里只是把apt-get的方法放在这里,并没有验证。

 

1.3.1 apt-get install安装JDK5

1) 添加JDK5的更新源,打开source.list

www.bkjia.com@bkjia:~$sudo gedit /etc/apt/sources.list

2) source.list里把下面内容追加到文档最后面:

deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse

deb-src http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse

deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

deb-src http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

保存退出。

3)更新源。

执行

 www.bkjia.com@bkjia:~$sudo apt-get update

4 配置编译环境并下载JDK5

www.bkjia.com@bkjia:~$sudo apt-get install sun-java5-jdk

 

1.3.2 官方网站下载JDK5安装

1) 官网http://java.sun.com/javase/downloads/5u22/jdk去下载jdk-1_5_0_22-linux-i586.bin

2) 然后执行安装,

www.bkjia.com@bkjia:~$cd ~

www.bkjia.com@bkjia:~$chmod +x jdk-1_5_0_22-linux-i586.bin

www.bkjia.com@bkjia:~$./jdk-1_5_0_22-linux-i586.bin

执行之后,生成 ~/jdk1.5.0_22

3JDK版本切换

安装了多个JDK的话,可以用update-alternatives设置版本,并进行切换选择使用哪个。

首先为JDK1.5版生成可选配置选项:

www.bkjia.com@bkjia:~$sudo update-alternatives –install /usr/bin/jdk jdk ~/jdk1.5.0_22 255

说明:/usr/bin/jdk是符号链接,它指 /etc/alternatives/jdk(由第2个参数给出),~/jdk1.5.0_22(/home/haili/jdk1.5.0_22)是实际目的链接,255是优先级(任意整数,在自动模式时,数字大的优先级较高,被选为默认配置选项)。

4) 配置JAVA环境

执行:

www.bkjia.com@bkjia:~$sudo gedit ~/.bashrc

在文件的尾部追加:

export JAVA_HOME=/usr/bin/jdk

export JRE_HOME=JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 

使更改生效。保存文件,执行

www.bkjia.com@bkjia:~$source ~/.bashrc

 

二、下载Android2.2 platform

下载Android PlatformgitAndroidrepo封装了git,用curl获取repo。工具git-corecurl1.2中已经下载安装了。

 

2.1. 获取repo      

www.bkjia.com@bkjia:~$cd ~

www.bkjia.com@bkjia:~$mkdir bin

www.bkjia.com@bkjia:~$curl http://android.git.kernel.org/repo >~/bin/repo

www.bkjia.com@bkjia:~$chmod a+x ~/bin/repo

 

2.2.   ~/bin路径加入到PATH

执行:

www.bkjia.com@bkjia:~$sudo gedit ~/.bashrc

在文件的尾部追加:

export PATH=$PATH:~/bin

 

执行

www.bkjia.com@bkjia:~$source ~/.bashrc

 

2.3 获取android-2.2.2.r1

可以到http://android.git.kernel.org,点击platform/manifest.git看当前的版本,笔者选择了当前2.2的最新版本android-2.2.2_r1

 

下载android2.2.2_r1,执行

www.bkjia.com@bkjia:~$cd ~

www.bkjia.com@bkjia:~$mkdir android-2.2.2_r1

www.bkjia.com@bkjia:~$cd android-2.2.2_r1

 

www.bkjia.com@bkjia:~/android-2.2.2_r1$repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.2.2_r1

www.bkjia.com@bkjia:~/android-2.2.2_r1$repo sync -j4

 

三、编译Android镜像

环境设置

www.bkjia.com@bkjia:~/android-2.2.2_r1$ source build/envsetup.sh

www.bkjia.com@bkjia:~/android-2.2.2_r1$ lunch

会提示选择

1.       generic-eng

2.       simulator

3.       full_dream-userdebug

4.       full_passion-userdebug

5.       full_sapphire-userdebug

 

选择1,会显示当前的设置

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=2.2.2

TARGET_PRODUCT=generic

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=false

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=FRG83G

 

编译,执行

www.bkjia.com@bkjia:~/android-2.2.2_r1$make –j2

 

如果编译没什么问题,编译完成之后会生成镜像在目录~/android-2.2.2_r1/out/target/product/generic下:system.imgramdisk.imguserdata.img

 

四、编译Android SDK

刚才并没有编译SDK。要编译SDK,执行

www.bkjia.com@bkjia:~/android-2.2.2_r1$make sdk

 

生成

~/ android-2.2.2_r1/out/host/linux-x86/sdk/android-sdk_eng.haili_linux-x86.zip

~/ android-2.2.2_r1/out/host/linux-x86/sdk/android-sdk_eng.haili_linux-x86

 

加入路径,追加下面两行到~/.bashrc

export ANDROID_SDK_ROOT=~/ android-2.2.2_r1/out/host/linux-x86/sdk/android-sdk_eng.haili_linux-x86

export PATH=$ANDROID_SDK_ROOT/tools:$PATH

 

执行

www.bkjia.com@bkjia:~/android-2.2.2_r1$source ~/.bashrc

 

五、验证

 

创建AVD,执行

www.bkjia.com@bkjia:~/android-2.2.2_r1$android

 

在启动的Android SDK and AVD Manager中,创建AVD,取值如下,

Name:          AVD_HVGA;

Target:         Android 2.2.2 – API Level 8;

SD Card:      1024M

Skin: HVGA

 

点击按钮Create AVD,创建出AVD_HVGA

 

执行

www.bkjia.com@bkjia:~/android-2.2.2_r1$emulator –avd AVD_HVGA

相关内容