Android4.4编译环境的搭建和编译
第一部分:编译环境的硬件和软件平台介绍
1、编译环境:Ubuntu 14.04 X86_64(64位)
PS:官方建议12.04。小编使用的是8G真机(物理机),虚拟机用户建议设置内存4G以上、硬盘空间60G以上。
2、软件环境:Android4.4源代码。(本文不涉及内核编译,所以只会讲到Android源码部分)
第二部分:Android编译环境的搭建
1、Linux环境:在这里不过多介绍,自行百度。可以是虚拟机也可以是真机。
2、JDK的安装与配置:编译Android2.3以上需要使用Java SE 1.6。版本过高和过低都不行。
(1)、建立/usr/lib/jvm目录。( JDK目录可以自行放置,只要环境配好就行了,这里我们是在/usr/lib/jvm目录下配置,需要管理员权限,所以在命令前面需要加上 sudo。)
$ sudo mkdir /usr/lib/jvm
(2)、将jdk-6u45-linux-x64.bin拷贝到/usr/lib/jvm目录下并解压。
$ sudo ./jdk-6u45-linux-x64.bin
如果无法解压 需要先给权限在解压。(这里就给全部的权限吧。)
$ sudo chmod 777 jdk-6u45-linux-x64.bin
$ sudo ./jdk-6u45-linux-x64.bin
解压完成,得到jdk1.6.0_45目录。
(3)、配置JDK环境。在/etc/profile文件最后面添加环境。
#Java_HOME为刚才解压出来的JDK的路径
Java_HOME=/usr/lib/jvm/jdk1.6.0_45
PATH=$Java_HOME/bin:$PATH
classpath=.:$Java_HOME/lib/dt.jar:$Java_HOME/lib/tools.jar
export Java_HOME
export PATH
export classpath
(4)、执行JDK环境、测试JDK是否安装成功:
$ source /etc/profile
$ java -version
(5)、安装成功即可得到Java的版本信息。如果不成功建议重启一下电脑后在输入java -version。过不还是不行请检查/etc/profile的配置是否正确。
ava version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
(网速原因,后续会给大家上传Ubuntu14.04 X86_64系统镜像和JDK安装文件。)
3、编译源码依赖包的安装
$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
到这里基本编译环境搭建完成,下面进入源码编译。
第三部分:Android编译编译
1、初始化环境:进入源码目录输入source build/envsetup.sh
$ source build/envsetup.sh
2、选择需要编译的版本:lunch
chengkni@chengkni-Aspire-4752:~/Android_SDK/Source_4.4.2$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_x86-eng
3. aosp_mips-eng
4. vbox_x86-eng
5. aosp_manta-userdebug
6. aosp_tilapia-userdebug
7. aosp_deb-userdebug
8. aosp_flo-userdebug
9. aosp_grouper-userdebug
10. aosp_hammerhead-userdebug
11. aosp_mako-userdebug
12. mini_armv7a_neon-userdebug
13. mini_x86-userdebug
14. mini_mips-userdebug
Which would you like? [aosp_arm-eng]
3、开始编译:输入:make
(make后边带 -j是多线程编译,如果CPU强悍可以把j后边的数字填写更大。如:make -j4代表开4线程编译。如遇开多线程编译出错还是直接编译吧,博主开4线程就报错了,最后乖乖的单线程编译的四五个小时。)
$ make
5、编译完成:输入emulator运行虚拟机。虚拟机运行成功。编译成功。到此结束。
$ emulator