下文将向大家介绍如何构建Android源代码的编译环境,为了能成功编译,你需要使用Ubuntu操作系统。
注意:Android源代码的大小大约是2.6GB,它需要在你的系统里腾出10G空间来进行全编译。
下图展示了Android每个版本源代码开发、升级的整体过程。
如果您想实时查看Android系统某一部分的代码,请访问http://android.git.kernel.org/
建立Linux编译环境:
按照惯例,我们在Ubuntu的最新版本上测试编译过程,但是,大多数的Linux发行版都是可以像Ubuntu一样提供编译所需要的环境的。如果您在哪个Linux发行版上编译成功或编译失败,我们很欢迎您能将信息反馈给我们。
注意:也可以在虚拟机上编译Android源代码。如果是在虚拟机中运行Linux,为了能够构建Android项目树,至少需要8GB的RAM/swap和另外12GB的硬盘空间。
总的来说,你需要一下工具:
1. Python2.4 ~ 2.7 python.org .
2. JDK 6(编译Gingerbread),JDK5(编译Froyo),java.sun.com .
3. Git1.5.4或更新版本git-scm.com .
4.(可选)Valgirnd,一个可以帮助你发现内存泄漏、栈溢出和数组越界等问题的工具valgrind.org .
下面,以Ubuntu 10.04为例来说明具体的搭建过程:
下载JDK
Sun JDK已经被从Ubuntu的主安装包仓库中移除。www.linuxidc.com为了下载JDK,需要为系统指定JDK安装包地址
Java 6:编译Gingerbread或更新版本
- $ sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
- $ sudo add-apt-repository “deb-src http://archive.canonical.com/ubuntu lucid partner”
- $ sudo apt-get update
- $ sudo apt-get install sun-java6-jdk
Java 5:编译Froyo和更老版本
- $ 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
为了构建开发环境,需要安装一下包:
64位系统:
- $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
- lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev
32位系统:
- $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
- libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libz-dev libgl1-mesa-dev
为了能够在64位系统上编译Froyo或者更老的发布版本,需要额外的一些用来创建32位编译环境的包:
- $ sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386
访问USB:
在GNU/linux系统(尤其是Unbuntu系统)中,默认情况下,用户通常不能直接访问USB设备,我们需要进行配置。
- # adb protocol on passion (Nexus One)
- SUBSYSTEM==“usb”, ATTR{idVendor}==“18d1”, ATTR{idProduct}==“4e12”, MODE=“0600”, OWNER=“<username>”
- # fastboot protocol on passion (Nexus One)
- SUBSYSTEM==“usb”, ATTR{idVendor}==“0bb4”, ATTR{idProduct}==“0fff”, MODE=“0600”, OWNER=“<username>”
- # adb protocol on crespo (Nexus S)
- SUBSYSTEM==“usb”, ATTR{idVendor}==“18d1”, ATTR{idProduct}==“4e22”, MODE=“0600”, OWNER=“<username>”
- # fastboot protocol on crespo (Nexus S)
- SUBSYSTEM==“usb”, ATTR{idVendor}==“18d1”, ATTR{idProduct}==“4e20”, MODE=“0600”, OWNER=“<username>”
建议您在系统上创建一个文件/ 然收将下面的内容复制到里面。注意,请务必用具体的username替换一下文本中的“username”字符串
这些规则将会在下次插入设备时起作用,这就需要您先移除设备后再次连接。
在Ubuntu Hardy Heron (8.04.x LTS) 和 Lucid Lynx (10.04.x LTS)上,完成以上操作,您就已经搭建好编译环境了.如果是其他版本的Ubuntu或者其它变种的GNU/linux可能需要不同的配置。