Ubuntu 10.04环境下载&编译Android源代码及JDK版本切换

    技术2022-05-14  4

     

    前言

    本文叙述了如何从零开始搭建基于Google官方Android 2.1-r2源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。文中开发机是基于Ubuntu 10.04的,同样适用于其他版本的Ubuntu

        2. 下载JDK 1.5

    编译Android源码需要JDK1.5版(主要是需要其中的javadoc),1.6版是不兼容的。JDK1.5已经停止支持,其最终的版本是JDK 5.0 Update 22

    可从Sun官网上下载:

    http://java.sun.com/javase/downloads/5u22/jdk

    选择平台Linux,勾选同意许可协议:

    单击Continue,在弹出的页面中一共有两个下载,选第一个jdk-1_5_0_22-linux-i586.bin下载:

             3. 部署JDK 1.5

               3.1 解压缩JDK

    以下命令均在root账户上执行,非root账户执行某些命令可能需要加sudo

    jdk-1_5_0_22-linux-i586.bin放在root目录下。进入该目录:

    cd ~

    然后赋予该bin文件可执行属性:

    chmod +x jdk-1_5_0_22-linux-i586.bin

    再执行安装(注意前面有./)

    ./jdk-1_5_0_22-linux-i586.bin

    跳过协议阅读。

    最后一行:

    Do you agree to the above license terms? [yes or no]

    键入yes,然后回车,开始解压。默认会解压到当前目录下的jdk1.5.0_22目录下(此处是~/ jdk1.5.0_22)。

               3.2 JDK版本切换

    如果同时需要使用JDK1.6版做应用开发,则系统中将同时存在JDK1.5JDK1.6。因此需要实现能够在不同版本间切换。如果不使用JDK1.6,请做完1.5版的设置后跳至3.3节。

    同样可在sun官网上下载JDK1.6:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html

    然后在这里使用update-alternatives命令实现版本切换。

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

    update-alternatives --install /usr/bin/jdk jdk /root/jdk1.5.0_22 255

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

    然后再为JDK1.6版生成(如果有JDK1.6的话。不使用JDK1.6的请跳至3.3):

    update-alternatives --install /usr/bin/jdk jdk /root/jdk1.6.20 0

    这样,默认jdk版本即为1.5版。需要切换到1.6版时,请使用update-alternatives –config jdk

               3.3 配置JDK环境变量

    下面开始配置环境变量。

    在终端中执行:gedit ~/.bashrc

    修改.bashrc文件,添加下面语句:

    #set java environment

    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

    该段代码最好设置在文件的尾部。

    保存文件。在终端中执行source ~/.bashrc

    请使用java version检查JDK是否配置正确。

            4. 安装其他必备组件

    在终端上,使用下面的命令安装:

    apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

    因为JDK1.5在前面已经单独安装过了,因此此处apt-get install命令行中没有加入sun-java5-jdk

            5. 下载Android 源代码

              5.1 安装repo脚本

    首先安装repo。在root目录下新建一个bin目录。在终端中执行:

    cd ~

    mkdir bin

    然后,向PATH中添加bin路径:

    export PATH=$PATH:~/bin

    然后执行下面两行指令,下载repo脚本并修改可执行属性:

    curl https://android.git.kernel.org/repo >~/bin/repo

    chmod a+x ~/bin/repo

              5.2 初始化repo

    首先建立一个目录用来存放Android源代码:

    mkdir mydroid

    cd mydroid

    然后用最新的列表执行初始化。这里我们下载android 2.1-r2,因此加了参数 –b android-2.1_r2:

    repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.1_r2

    这中间会问到你的名字和Email。如果你打算上传代码,Email须是一个Google账户。

    repo初始化成功后会看到类似于下面的提示:

    repo initialized in /root/mydroid

    最后执行repo sync开始同步代码。过程比较漫长,下载速度取决于你的网速,中间有可能遇到断线,重新执行repo sync即可断点续传。

           6. 编译Android源代码

             6.1 编译生成镜像

    切换到android源码根目录下,执行make即可。首次编译非常耗时,取决于机器配置,大约需要3小时。完成后镜像生成在/root/mydroid/out/target/product/generic下。

             6.2 编译、配置Android SDK

    make编译完成后,执行make sdk命令,生成对应于该版本源代码的sdk

    Android官方的SDK和我们自己编译Android源码时使用make sdk编译出的SDK有区别,模拟器版本不同,加载的默认镜像也不同(一个是官方的,一个是自己编译的)。下面将展示如何能够自由切换SDK版本。

    首先是自己编译的SDK版本,实际位置是/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86

    因为它比较常用,我们给它高优先级:

    update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 255

    事先下载的官方SDK位置是/root/android-sdk-linux_86,执行:

    update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/android-sdk-linux_86 0

    然后使用update-alternatives --display AndroidSDK查看当前配置情况:

    如果要切换配置,使用update-alternatives --config AndroidSDK

    配置AndroidSDK环境变量。终端中执行gedit ~/.bashrc

    在文件最后添加下面三行:

    # set android environment

    export ANDROID_SDK_HOME=/usr/bin/AndroidSDK

    export PATH=$ANDROID_SDK_HOME/tools:$PATH

    保存文件。在终端中执行source ~/.bashrc

           7. 在模拟器中运行编译的镜像

    打开终端,执行android脚本:

    android

    出现下图所示窗口:

    选择左边第一项Virtual Devices,然后在右边选择New,新建一个AVD

    NameAVD的名称,随便取,但只能包含字母和数字以及点、下划线和连字符,这里取名test

    Traget:目标SDK版本,这里选自己编译的2.1-r1Android SDK

    SD CardSD卡。暂且不填,待需要时再设置。

    Skin:皮肤(模拟器屏幕分辨率)。

    Hardware:使用默认即可

    然后点Create AVD,就创建好了一个AVD。点击Start即可启动模拟器,其运行的是自己编译的镜像。

    若以后要再次启动此AVD,请在终端中运行:

    emulator –avd test 或者emulator @test

    原文地址:http://blog.csdn.net/jackyu613/archive/2010/07/31/5778646.aspx

     


    最新回复(0)