ubuntu12.04下载编译android2.3源代码

本文是参照     http://blog.csdn.net/luoshengyang/article/details/6559955 步骤进行的,但由于该博客中有些内容地址不存在,结合自己的实践写的一篇文章。在这里感谢罗老师在他博客里详细的讲解,让我初次编译android源代码少走了不少弯路。

 

一.环境准备

1.   安装ubuntu12.04系统

2.   安装Git工具。Android源代码采用Git工具来管理,与SVN相比,这是一种分布式的源代码管理工具,而SVN是集中式的源代码管理工具。要安装Git工具,在Ubuntu上执行以下命令即可:

USER-NAME@MACHINE-NAME:~$ sudo apt-get install git-core gnupg

3.安装Java SDK。在Ubuntu上执行以下命令:

USER-NAME@MACHINE-NAME:~$

 

sudo add-apt-repository ppa:ferramroberto/java

USER-NAME@MACHINE-NAME:~$

sudo apt-get update

USER-NAME@MACHINE-NAME:~$

sudo apt-get install sun-java6-jre sun-java6-plugin

USER-NAME@MACHINE-NAME:~$

sudo apt-get install sun-java6-jdk

4.依赖的其它包。在Ubuntu上执行以下命令:

 

USER-NAME@MACHINE-NAME:~$ sudo apt-get install flex bisongperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

5.调试工具。在Ubuntu上执行以下命令:

 

USER-NAME@MACHINE-NAME:~$ sudo apt-get install valgrind

 

二.下载android源代码2.3

1.创建一个目录

USER-NAME@MACHINE-NAME:~$ mkdir android

2切换到android目录            

USER-NAME@MACHINE-NAME:~/android$  cd android

3.   android目录下创建bin目录

USER-NAME@MACHINE-NAME:~/android$ mkdir bin

4.下载repo工具

USER-NAME@MACHINE-NAME:~/android$  curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > bin/repo

5.赋予repo使用权限

USER-NAME@MACHINE-NAME:~/android$ sudo chmod 777 bin/repo

6.repo获取android2.3版本源代码

USER-NAME@MACHINE-NAME:~/android$ bin/repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1

-----------------------branch可以在http://source.android.com/source/index.html网页中的 Build Numbers页面中查到。

7.将代码同步到本地

 USER-NAME@MACHINE-NAME:~/android$ bin/repo sync

       下载时间比较长,在android目录下可以看到同步的源代码。

 

三.编译android源码

        编译前需要修改gcc版本,因为ubuntu12.04采用gcc4.6版本,而android源代码需要gcc低版本编译,在这里使用gcc4.4版本

1.下载gcc-4.4和g++-4.4

USER-NAME@MACHINE-NAME:~/android$ apt-get install gcc-4.4 g++-4.4

 

2.进入/usr/bin

USER-NAME@MACHINE-NAME:~/android$  cd /usr/bin

3. 建个软连接

USER-NAME@MACHINE-NAME:/usr/bin$ ln -s gcc-4.4 gcc

USER-NAME@MACHINE-NAME:/usr/bin$ln -s g++-4.4 g++

4.回到android目录

USER-NAME@MACHINE-NAME:/usr/bin$ cd ~/android

5.在android目录下执行以下命令:

USER-NAME@MACHINE-NAME:~/Android$ make

第一次编译要等待比较久的时间

 

也许编译会有错误,我很幸运,没有碰到该问题

 

四、安装编译好的Android镜像到模拟器上。

1.设置环境变量:

USER-NAME@MACHINE-NAME:~/android$ export PATH=$PATH:~/android/out/host/linux-x86/bin

USER-NAME@MACHINE-NAME:~/android$ exportANDROID_PRODUCT_OUT=~/android/out/target/product/generic

其中,~/android/out/host/linux-x86/bin有我们要执行的emulator命令,而~/android/out/target/product/genericandroid镜像存放目录,下面执行emulator命令时会用到。

2.运行模拟器。

USER-NAME@MACHINE-NAME:~/android$ emulator

模拟器运行需要四个文件,分别是Linux Kernel镜像zImageAndroid镜像文件system.imguserdata.imgramdisk.img。执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.imguserdata.imgramdisk.img,也就是我们刚刚编译出来的镜像问题。

当然,我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:

USER-NAME@MACHINE-NAME:~/android$ emulator -kernel./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic-system system.img -data userdata.img -ramdisk ramdisk.img

 

 

你可能感兴趣的:(ubuntu12.04下载编译android2.3源代码)