一、环境搭建
1.系统安装
我们知道Android系统是基于Linux开发的,所以我们想编译Android系统源码的话,就必须有一个Linux系统,这里我使用了Ubuntu 64位的系统,这个镜像文件的下载地址是:
http://pan.baidu.com/s/1bQ219G
Android 源码编译的磁盘和硬盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,我安装的是双系统,分配了100G的空间,编译完成使用了55G左右; 内存至少分配 2G,并且Swap空间分配4G
2.安装openjdk-7-jdk
Android 5.0 之后用到的jdk不在是Oracle 的 jdk ,而是开源的 openjdk,在ubuntu安装好后,使用如下命令安装openjdk:
1. $sudo apt-get update
2. $sudo apt-get install openjdk-7-jdk
3. $sudo update-alternatives --config java
4. $sudo update-alternatives --config javac
安装好后,设置环境变量:
gedit /etc/profile
在/etc/profile 文件末尾加上:
1. JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
2. PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
3. export JAVA_HOME
4. export PATH
3.安装依赖软件
使用如下命令安装依赖软件:
1. $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- dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
2. $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
二、源码下载
1.工具下载安装
配置ccache
安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。
1. $sudo apt-get install ccache
2. $source ~/.bashrc
git :使用repo工具的时候会用到git,git并没有在Ubuntu中预装,所以需要事先安装git,使用命令:
sudo apt-get install git
安装完成之后,需要对Git进行配置,设置git的电子邮件和用户名。
如果没有,注册一个
https://github.com/
git config --global user.email "你的电子邮件地址"
git config --global user.name "你的名字"
- curl :官方一点的说法就是开源的文件传输工具,类似迅雷。
所以我们需要自己动手安装:
sudo apt-get install curl -y
执行如下命令:
//新建一个bin目录
mkdir ~/bin
//将bin目录写入环境变量(这样你在任何目录下都可以访问)
PATH=~/bin:$PATH
//轮到curl工具了,我们使用curl工具下载repo,并将其放置到bin目录
curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo
//更改repo权限
chmod a+x ~/bin/repo
执行完以上命令之后,是不是有点成就感了?平日里就堵这里吧?我们继续:
接下来新建一个目录,用于放置Android源码,并进入该目录,如下:
mkdir android
cd android
接下来我们初始化仓库:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
(接下来这一步就是从服务器取代码了,如果你只想下载特定的android版本,可以使用如下命令:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b Android版本
Android 版本可以参考这个网址
https://source.android.com/source/build-numbers.html#source-code-tags-and-builds
由于某些原因(你懂得),很多人可能无法查看
但我们下载全部代码,运行命令:
repo sync
三、源码编译
1.源码编译
ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少
1)设置cache
1. $ cd aosp
2. $ prebuilts/misc/linux-x86/ccache/ccache -M 50G
2)初始化编译环境
1. $ . build/envsetup.sh
3)选择编译目标包
ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
1. $lunch aosp_arm-eng
4)编译
1. $make
ps:1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多2.make失败或停止后,可以使用make -k 继续编译
2.模拟器展示
$ emulator