首先需要准备的有linux的环境,因为Android源码的下载和编译都是在linux环境下完成的。这里本人使用的是Ubuntu Kylin 15.0
准备软件
ubuntu 15.0
一、安装编译器和组件
我下的不是最新的源码,在编译中使用的是jdk,不是OpenJDK,可能用最新的源码编译时使用OPENJDK美柚问题。
1.java版本
java -version
java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)
2.组件
$ 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
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
可能有些组件安装不了,能搜到的就搜索解决,不能的就先放在哪儿
二、下载android源码
1.
安装下载的客户端
$ sudo apt-get install curl
$ sudo apt-get install git-core
2. 创建一个~/bin目录,并添加到环境变量中
$ mkdir ~/bin
$ PATH=~/bin:$PATH
3. 下载repo脚本且修改他的权限为可执行
$ curl http://git-repo.googlecode.com/files/repo-1.13 > ~/bin/repo
$ chmod a+x ~/bin/repo
4. 创建一个保存android源码的目录,修改为最大权限且进入到该目录下
$ /home/august/android4.4
$ sudo chmod –R 777 /home/august/android4.4
$ cd /home/august/android4.4
PS:由于android下载过程中有个.repo的隐藏目录,这个目录很大(12G),下载到其他分区,估计硬盘不够用,如果你按照我前面的教程安装的虚拟机只有下载到home目录下才能下载完。创建目录时目录中的august是我本人的英文名。读者可以根据自己的喜好随便命名,这里是允许自由发挥的,除了这好像没有其他的,如果想一次成功,就需要按照我的步骤一步一步来。
5. 初始化repo客户端,选择将要下载的android版本
$ repo init -u https://android.googlesource.com/platform/manifest
-b android-4.4_r1 不加-b后面的内容表示下载最新的源码
PS:输入回车后,可能会看到需要你输入你的姓名和邮箱,姓名可以随便输入,但是邮箱最好是可用的且最好是gmail的邮箱,原因我也不清楚,网上这么说的。
6. 上面的所有工作都弄完成后,就开始下载源码了
$ repo sync
由于网络的原因可以使用脚本来重复执行 repo sync
脚本如下:
#! /bin/bash
echo "=====start repo sync======"
/home/august/android4.4/repo sync
while [ $? = 1 ]; do
echo “======sync failed, re-sync again======”
sleep 3
/home/august/android4.4/repo sync
done
里面的目录根据自己的需要做适当的修改。
下载中会出现各种错误,错误将在附件中详细说明,详情见附件。
编译android的步骤如下:
1. 初始化编译环境
$ source build/envsetup.sh
2. 选择需要编译的版本类型
$ lunch full-eng
3. 编译源码
$ make –jN
PS:N表示的是你创建虚拟机时cpu核心数,比如我的上图虚拟机的核心数为8,所以命令为 $ make –j8。即采用8核来编译源码。
编译和下载一样会出现很多问题,帖子中就不一一说明,详细的说明还是见文档,写的很详细。
文档下载地址:http://download.csdn.net/detail/yxchen0811/6995527
下载和编译的基本流程就这些,但是期间会有很多错误,本人前段时间也是抽空整理了下,做成文档,方便需要下载源码的工程师参考和借鉴。
文档下载地址:http://download.csdn.net/detail/yxchen0811/6995527
PS:本人按照这个方法发现没有kernel目录,但是能编译源代码并且运行模拟器,这是因为在启动模拟器时,Linux Kernel默认启用
prebuilt/qemu-kernel/arm/kernel目录下的kernel-qemu文件,想运行特定的内核需要下载kernel,参考网址:
编译Linux内核源代码http://blog.csdn.net/luzhenrong45/article/details/9882189