1.准备工具
1.1unbuntu16.04所需依赖项
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
1.2所需jdk
我编译的是android4.4.4所需jdk6,可以去Oracle官网下载
如果你要编译的是Android 5.x到android 6.0之间的系统版本,需要采用openjdk7.
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
如果你要编译的是Android6.0以上版本,所需openjdk8
sudo apt-get install openjdk-8-jdk
1.3切换jdk版本
有时候,我们需要编译不同版本的android系统,就可能使用不同的jdk版本.关于jdk版本切换,可以使用如下命令:
sudo update-alternative --config java
sudo update-alternative --config javac
2.下载源码
1.下载Repo,并确保它是可行的
repo 是安卓环境下的命令行工具,对Git部分命令进行封装,将 百多个git库进行更新。
在主目录(home)下创建bin目录,并添加到环境变量:
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
sudo chmod a+x repo
PATH=~/bin:$PATH
2.下载android源码
在主目录(home)下创建androids_source目录
mkdir ~/androids_source
将export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'添加到~/.bashrc文件末尾
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1 初始化仓库并指定要下载的版本
git config --global user.name "Your Name" //github用户名
git config --global user.email "you@example.com" //github邮箱
repo sync
3.编译源码
3.1使用build目录中的envsetup.sh脚本初始化环境
source build/envsetup.sh
3.2选择目标
lunch aosp_hammerhead-userdebug
3.3编译代码
查看cpu核心数:
cat /proc/cpuinfo |grep processor
make -j8 核心数到核心数的2倍区间
注:ubuntu16.04的make默认为4.1需要降级到3.8.2 (https://blog.csdn.net/sjzzdf123/article/details/79863548)
参考资料
https://blog.csdn.net/u012417380/article/details/73196722
https://blog.csdn.net/u012417380/article/details/73353670