Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo) 源代码 1/2

应一个在电信做android开发的哥们要求,帮忙把Goole未在sdk中打包的API(即:mms彩信功能),打包到自己编译的sdk里面。偶 用了差不多5天+5夜的时间,虽然没有成功。但对于Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo)源代码这个过程是相当熟悉啦,来来回回,在虚拟机里面做了5遍!其中的辛苦与开心只有自己才有深刻的体会。现在分享给大家,同时也感谢网络 上的筒子们。

1. 前言

本文叙述了如何从零开始搭建基于 Google 官方 Android 2.2.1 froyo 源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。文中开 发机是基于 Ubuntu 10.04 的,同样适用于其他版本的 Ubuntu 现在需要弄清楚一下几点,防止后面出现误操作: 下载源代码是用参数: repo init -u git://android.git.kernel.org/platform/manifest.git   -b  froyo (下载的是 2.2.1 版本,编译环境操作系统必须 32 位的, jdk1.5 版本 ---jdk1.5 没有 64 位版本)。如果是没有带参数的下载源代码,将会下载所有的源代码,编译环境要求:操作系统 64 位, jdk1.6 , (偶是 2010 10 15 做)但很有可能 会出现交叉编译工具错误:“ /bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: 没有那个文件或目录 ”(实际上是有 arm-eabi-gcc 这个文件的,偶怀疑是版本问题 --32 位的,而环境要求 是 64 位的 —-- 下载全部代码

    2. 下载 JDK 1.5 (不建议此下载方式,防止配置环境参数出错。建议用 apt-get install 方式,请跳转到:第 4

编译 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

(sudo update-alternatives --install /usr/bin/jdk jdk /home/ynb/jdk1.5.0_22 255)

/usr/bin/jdk 是符号链接,它指 /etc/alternatives/jdk (由第 2 个参数 给出的), /root/jdk1.5.22(/home/ynb/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 环境变量

下面开始配置环境变量。

在终端中执行: sudo 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 方式安装 JDK1.5

Android 要求的 jdk 1.5, Ubuntu10.4 的源里只有 JDK1.6. 如果安装了 jdk1.6 请先卸载

$sudo  apt-get  remove  remove openjdk-6-jdk

$sudo  apt-get  remove  remove openjdk-6-jre

$sudo  apt-get  remove  remove openjdk-6-jre-headless

 

安装 jdk1.5 目前网上解决方法有两种:
    解决方 法一 ( 建议 )   安装 JDK1.5
  

  1 根据官方文档里所说 , 源代码的编 译必须使用 JDK5 才能编译的了,所以这里偶 使用 jdk5
  2 需要先更新源 , 在终端里执行 sudo vim /etc/apt/sources.list
  3 source.list 里把以 下 2 行拷贝到文档最后面:      

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

      保存退出。
  4 执行 sudo apt-get update 更新源 .
  5 配置编译环境并下载 JDK5 sudo apt-get install sun-java5-jdk
    解决方法二:   安装 JDK 1.6  , 修改 Android 源文件。
  1 安装 jdk 1.6 ,修改 <src_top/build/core/make.mk>( 如果 2.0 版本源码请修改 <src_top/build/core/main.mk>)
    在文件中搜索并分别把:
      java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
      javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
    两行改成:
      java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
      javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
    即可。
    推荐使用第 一种解决方法。

5 . 安装其他必备组件

在终端上,使用下面的命令安装: ( 前面的 1 2 3 步骤都可以省略啦 )

sudo 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.360doc.com/content/10/1119/13/474846_70648224.shtml

你可能感兴趣的:(java,jdk,android,shell,ubuntu,javadoc)