软件源
由于国内屏蔽了Android 源,所以我使用了清华的软件源。
下面是摘录的使用方法
下载 repo
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
下载初始化包
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,所以提供了初始包下载。
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包tar xf aosp-latest.tarcd AOSP # 解压得到的 AOSP 工程目录# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录repo sync # 正常同步一遍即可得到完整目录# 或 repo sync -l 仅checkout代码
获得最新源码后,我们现在开始编译过程
编译环境
Android 7.0 使用 opendjdk-8 ,系统内存不低于8G,推荐16G
这是我的编译环境
安装相关编译器
sudo apt-get install bison g++-multib g++ gcc gcc-multlib make
编译
source build/envsetup.sh lunchmake
接下来就是漫长的等待了,但比起以前的版本来说快了很多
启动模拟器
错误处理
GC overhead limit exceeded. Try increasing heap size with java option '-Xmx<size>'
由于系统只有8G内存,所有在编译过程中,提示GC溢出 参考了一些网上的修改方法
方法一: 修改 ~/.jack-server/config.properties
将最大数值由4改为1,避免应为内存不足而发生错误。
方法二: 修改 out/host/linux-x86/bin/jack-admin
直接设置Java栈大小
注:方法一和方法二修改完成后需要重启 jack-server服务,切记
jack-admin kill-server && jack-admin start-server