Ubuntu 10.10 Compile Android Source Code


1.下载安装jdk1.5

    由于Ubuntu 10.10默认没有java的源,我们首先得找到java的源。

    $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
    $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
    $ sudo apt-get update
    $ sudo apt-get install sun-java5-jdk
    如果之前安装了jdk1.6。可以设置配置选项。
    update-alternatives --install /usr/bin/jdk jdk /root/jdk1.5.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的话):
    update-alternatives --install /usr/bin/jdk jdk /root/jdk1.6.20 0
    这样,默认jdk版本即为1.5版。 需要切换到1.6版时,请使用update-alternatives –config jdk
Android仅支持1.5以上版本的java sdk,且1.6版本的java sdk在进行android sdk编译时会出现java doc错误,在这里我的解决办法时先安装java sdk 1.6,接着安装java sdk 1.5,然后将系统的java sdk链接到java sdk 1.6上,仅是将javadoc和javadoc.1.gz链接到java sdk 1.5上,这样做的好处是在编译android源码和进行android应用开发时,使用的是java sdk 1.6,仅在编译android sdk的doc时,使用的是java sdk 1.5版本的javadoc和javadoc.1gz。
     命令如下:
$cd /etc/alternatives
$sudo rm javadoc.1.gz javadoc
$sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

2.降低GCC版本
    由于ubuntu10.10默认安装的是gcc最新版本。而android源码支持在gcc4.3环境下编译,不能将const char* 转为char*。因此得降低版本。
    安装gcc-4.3
$ sudo apt-get install gcc-4.3 g++-4.3
    修gcc相关链接
$ cd /usr/bin
$sudo ln -snf gcc-4.3 gcc
$sudo ln -snf g++-4.3 g++
$sudo ln -snf cpp-4.3 cpp
    这样就可以让gcc链接到4.3版本了。

3.安装其他必备组件
    在终端上,使用下面的命令安装:
sudo apt-get  install git-core gnupg flex bison gperf build-essential zip zlib1g-dev gcc-multilib g++-multilib libsdl-dev libesd0-dev libwxgtk2.6-dev
     这部分配置是一些必须的库。

4.编译开发环境
    切换到android源码根目录下,执行$sudo make即可。完成后镜像生成在/root/mydroid/out/target/product/generic下:android源码编译后会产生system.img,ramdisk.img,userdata.img映像文件。其中,ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。

相关内容