1.源码下载。
源码最好还是从google官网下载。但是国内比较坑爹,google下载不了。可从其他平台下载,如清华镜像AOSP。详情下载方式可参考清华镜像下载帮助:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
也可从本人网盘下载。百度网盘下载有速度限制,很慢。可晚上睡觉期间后台下载。
百度网盘地址:
http://pan.baidu.com/s/1qXDQs5u (android 5.1)
http://pan.baidu.com/s/1nvF86cp (android 6.0)
2.编译环境
系统:ubuntu 16.04 LTS
Java:openjdk-8-jdk
3.依赖库
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
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 lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
4.开始编译
(1) 修改 mydroid/art/build/Android.common_build.mk 文件,定位到75行,将下面的代码:
**ifneq ($(WITHOUT_HOST_CLANG),true)**
改为:
**ifneq ($(WITHOUT_HOST_CLANG),false)**
(2)在 .bashrc文件末尾添加:export USE_CCACHE = 1
echo export USE_CCACHE=1 >> ~/.bashrc
(3) 为了提高编译效率,设置编译器高速缓存(不然很容易提示内存不够之类的问题):
prebuilts/misc/linux-x86/ccache/ccache -M 50G
(4) 接着导入编译Android源码所需的环境变量和其它参数:
source build/envsetup.sh
(5)lunch 选择1
(6)make -j8 (j后面跟cpy个数,根据具体电脑实际情况设置)
然后就是漫长的等待。
备注:
如果编译过程中报出out of memory,please increase your java Xmx 错误时候:
可尝试执行以下操作,然后再次编译,即可成功:
1. 在 .bashrc文件末尾添加:export USE_CCACHE = 1
echo export USE_CCACHE=1 >> ~/.bashrc
2. 为了提高编译效率,设置编译器高速缓存。
prebuilts/misc/linux-x86/ccache/ccache -M 50G
3. 终端执行下面命令,提高Xmx的内存。
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
4. 在android源码根目录执行以下命令重启jack-server
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server
5. 若还有问题,可尝试修改 /root/.jack-server/config.properties
文件,将
jack.server.max-service=4
改成
jack.server.max-service=1
详细步骤可参考文章。http://blog.csdn.net/fuchaosz/article/details/51487585