首页 / 操作系统 / Linux / Ubuntu 10.10下编译Android 2.2平台
环境:Ubuntu 10.10 Android 2.2.2_r1 android-gldfish-2.6.29 0 说明Android2.2的platform和kernel是分别的项目,要分别下载编译。本文是Ubuntu10.10 环境下Android2.2.2_r1平台(包含SDK)的编译。 读者:希望深入Android底层开发者,如果只是ANDROID应用开发者,不用如此麻烦,直接下载现成的SDK以及其他相应工具即可。 一、环境准备 1.1. 安装Utunbu 10.10在写此文时,ubuntu已经有更新的安装包发布,笔者没有更新。 1.2. 工具下载安装www.linuxidc.com@linuxidc:~$sudo apt-get install git-core curl
www.linuxidc.com@linuxidc:~$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.0的jdk。用apt-get方法(1.3.1)简单易操作,可是笔者试着更新了很多源,但是都连接不上,所以用了直接下载安装的方法(1.3.2)。这里只是把apt-get的方法放在这里,并没有验证。 1.3.1 apt-get install安装JDK51) 添加JDK5的更新源,打开source.listwww.linuxidc.com@linuxidc:~$sudo gedit /etc/apt/sources.list2) 在source.list里把下面内容追加到文档最后面:deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ jaunty multiversedeb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse保存退出。3)更新源。执行 www.linuxidc.com@linuxidc:~$sudo apt-get update4) 配置编译环境并下载JDK5:www.linuxidc.com@linuxidc:~$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.linuxidc.com@linuxidc:~$cd ~www.linuxidc.com@linuxidc:~$chmod +x jdk-1_5_0_22-linux-i586.binwww.linuxidc.com@linuxidc:~$./jdk-1_5_0_22-linux-i586.bin执行之后,生成 ~/jdk1.5.0_223)JDK版本切换安装了多个JDK的话,可以用update-alternatives设置版本,并进行切换选择使用哪个。首先为JDK1.5版生成可选配置选项:www.linuxidc.com@linuxidc:~$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.linuxidc.com@linuxidc:~$sudo gedit ~/.bashrc在文件的尾部追加:export JAVA_HOME=/usr/bin/jdkexport JRE_HOME=JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 使更改生效。保存文件,执行www.linuxidc.com@linuxidc:~$source ~/.bashrc 二、下载Android2.2 platform下载Android Platform用git,Android用repo封装了git,用curl获取repo。工具git-core和curl在1.2中已经下载安装了。 2.1. 获取repo www.linuxidc.com@linuxidc:~$cd ~www.linuxidc.com@linuxidc:~$mkdir binwww.linuxidc.com@linuxidc:~$curl http://android.git.kernel.org/repo >~/bin/repowww.linuxidc.com@linuxidc:~$chmod a+x ~/bin/repo 2.2. 把~/bin路径加入到PATH执行:www.linuxidc.com@linuxidc:~$sudo gedit ~/.bashrc在文件的尾部追加:export PATH=$PATH:~/bin 执行www.linuxidc.com@linuxidc:~$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.linuxidc.com@linuxidc:~$cd ~www.linuxidc.com@linuxidc:~$mkdir android-2.2.2_r1www.linuxidc.com@linuxidc:~$cd android-2.2.2_r1 www.linuxidc.com@linuxidc:~/android-2.2.2_r1$repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.2.2_r1www.linuxidc.com@linuxidc:~/android-2.2.2_r1$repo sync -j4 三、编译Android镜像环境设置www.linuxidc.com@linuxidc:~/android-2.2.2_r1$ source build/envsetup.shwww.linuxidc.com@linuxidc:~/android-2.2.2_r1$ lunch会提示选择1. generic-eng2. simulator3. full_dream-userdebug4. full_passion-userdebug5. full_sapphire-userdebug 选择1,会显示当前的设置PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.2.2TARGET_PRODUCT=genericTARGET_BUILD_VARIANT=engTARGET_SIMULATOR=falseTARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armHOST_ARCH=x86HOST_OS=linuxHOST_BUILD_TYPE=releaseBUILD_ID=FRG83G 编译,执行www.linuxidc.com@linuxidc:~/android-2.2.2_r1$make –j2 如果编译没什么问题,编译完成之后会生成镜像在目录~/android-2.2.2_r1/out/target/product/generic下:system.img,ramdisk.img,userdata.img。 四、编译Android SDK刚才并没有编译SDK。要编译SDK,执行www.linuxidc.com@linuxidc:~/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 加入路径,追加下面两行到~/.bashrcexport ANDROID_SDK_ROOT=~/ android-2.2.2_r1/out/host/linux-x86/sdk/android-sdk_eng.haili_linux-x86export PATH=$ANDROID_SDK_ROOT/tools:$PATH 执行www.linuxidc.com@linuxidc:~/android-2.2.2_r1$source ~/.bashrc 五、验证 创建AVD,执行www.linuxidc.com@linuxidc:~/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: 1024MSkin: HVGA 点击按钮Create AVD,创建出AVD_HVGA。 执行www.linuxidc.com@linuxidc:~/android-2.2.2_r1$emulator –avd AVD_HVGA