Android优势在于开源,手机和平板生产商可以根据自己的硬件进行个性定制自己的手机产品,如小米、乐Phone、M9等,因此,在对Android的源码进行定制时,很有必要了解一下Android对的编译过程。Google公司官方的编译过程只是告诉用户如何去编译一个通用的系统。
Android系统的下载与编译,Google的官网上已经给出了详细的说明,请参照Android的官方址:http://source.android.com/source/index.html。内容主要有:
(1) 准备Android下载与编译环境。
(2) 下载源码。
(3) 编译源码及内核源码。
Android源码的编译Google只给出了类UNIX系统,确切的说是Ubuntu及MacOS上的详细过程。使用Ubuntu12.04作为编译主机系统,由于Android系统里代码大部分是用Java语言写的,所以必须要安装JDK,不过,不同的版本,对JDK的版本有不同的要求。在Gingerbread(2.3.x)版本及其之后的版本,使用JDK6.0,并且使用64位系统编译。在Gingerbread(2.3.x)以前的版本,使用JDK5.0,并且可以在32位系统上编译。对于硬件环境来讲,要有足够快的PC,如果有条件,最好使用实体PC。内存最少1GB,硬盘最少要30GB。也可以使用VMware或VirtualBox等虚拟机软件,但是编译速度太慢,如果内存小于1GB,在编译系统时候可能会出错。
JDK6.0建议直接从SUN公司的网站上下载,其网址http://java.sun.com/javase/downloads/。
下载Android4.0及Goldfish源码:
(1) 下载并初始化repo工具:通过curl命令下载repo工具;给repo工具加执行权限;创建源码目录;初始化repo工具,准备访问Google源码仓库;保证Ubuntu能够上网,并且能正常连接到Android服务器,在初始化完repo工具后,会提示输入Gmail邮箱及用户名验证。
(2) 下载Android源码:$repo sync -jn
(3) 其他源码下载:www:linaro.org
(4) 下载模拟器Goldfish内核源码:Google在开发Android系统的同时,使用qemu开发了针对每一个版本的一个模拟器,这大大降低了开发人员的开发成本,便于Android技术的推广。qemu是一个开源的模拟器软件,而Google使用qemu模拟的是ARM936ej-s的Goldfish处理器,如果开发人员在没有目标开发板的情况下,想要对硬件进行操作Android底层的驱动,可以使用模拟器的内核源码。
编译Android及goldfish内核源码:
(1) 编译Android源码:初始化环境:切换到Android源码目录 $cd WORKING_DIRECTORY 执行如下命令,加载编译过程中用到的命令,环境变量: $ source build/envsetup.sh
(2) 选择编译选项 $ lunch
(3) 编译前的准备
(4) 编译源码 $ make –jn
(5) 编译goldfish内核源码:指定gcc交叉编译器,直接使用Android自带的arm-eabi-4.4.3编译器,它在WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin路径下。
Android编译过程分析。Google给出的编译步骤如下:
(1) source build/envsetup.sh:加载命令。
(2) lunch:选择目标平台编译选项。
(3) make:执行编译
本章节介绍了编译Android系统的一般编译过程,在分析了编译过程和配置文件后,重点介绍了特东平台下Android系统编译和定制手机模拟器ROM。