zoukankan      html  css  js  c++  java
  • Ubuntu 10.04 编译Android 2.1源码

    前言

    本文叙述了如何从零开始搭建基于 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.5 和 JDK1.6 。因此需要实现能够在不同版本间切换。如果不使用 JDK1.6 ,请做完 1.5 版的设置后跳至 3.3 节。

    这里使用 update-alternatives 命令实现。

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

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

    /usr/bin/jdk 是符号链接,它指向 /etc/alternatives/jdk (由第 2 个参数给出的), /root/jdk1.5.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-r1,因此加了参数 –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 。

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

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

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

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

    Hardware :使用默认即可

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

  • 相关阅读:
    强制表格内容不换行
    数组深度
    JDBC连接SQLService时报错误:“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接"
    Excel中神奇的vlookup函数之基础应用
    利用python进行泰坦尼克生存预测——数据探索分析
    pandas数据处理基础——基础加减乘除的运算规则
    pandas数据处理基础——筛选指定行或者指定列的数据
    python读取文本文件数据
    服务器硬件基础知识
    WordPress实现伪静态
  • 原文地址:https://www.cnblogs.com/mahang/p/2145779.html
Copyright © 2011-2022 走看看