关于android源码编译,以前在ubantu下编译4.x 版本出了好多问题,最近换了mac,编译下android6.0版本,编译过程基本没有什么问题
一.编译环境配置
参照:http://source.android.com/source/initializing.html
mac下主要做了两件事情
1.创建大小写敏感硬盘,mac的文件系统是大小写不敏感的,不适合android 源码编译,我分配了80G硬盘,编译6.0源码和内核基本够用。编译6.0建议至少60g,6.0源码下载大概28G左右,编译过程会产生很多编译文件。创建大小写文件系统如下
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg
运行以上命令会创建一个80G大小写敏感文件系统。
为了方便以后挂载该文件系统,可以创建一个function amountAndroid ,命令如下
function mountAndroid { hdiutil attach ~/android.dmg.sparsefile.sparseimage -mountpoint /Volumes/android; }
以后只要运行 mountAndroid就可以挂载该文件系统了。
2.jdk安装
编译不同版本的android源码对jdk的版本要求不一样,对于mac中多个jdk版本可以通过jenv来进行管理,具体google,android6.0的编译需要jdk为1.7。
二.源码下载
1.工具
repo
anroid源码包含多个git仓库,repo用来管理以及下载这些git仓库以及控制她们的之间的依赖关系。repo下载和安装如下:
$ mkdir ~/bin 创建一个bin目录
$ PATH=~/bin:$PATH 将bin加入path
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 下载repo
$ chmod a+x ~/bin/repo 添加可执行权限
2.使用国内镜像下载
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
中科大镜像:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
实测中科大镜像稳定且下载速度快。
$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.0_r26 下载mainfest mainfest记录
$ repo sync 下载源码
三.编译
初始化环境
$ source build/envsetup.sh 初始化环境
$ lunch aosp_arm-eng 选择编译版本
编译
make -j16
macbook pro 编译了不到2个小时,中间没有编译错误。