Android 源码编译经验分享, 以及如何使用Android studio 阅读整个源码
来自: http://www.cnblogs.com/liam999/p/android.html
android 源码编译最好的教程就是google 官方步骤一点一点的操作, http://source.android.com/ 。
但是在实际的过程中总是存在一些坑。
下载或编译源码 建议使用64位 ubuntu12.04 或者 14.04 这样可以保证和官方的环境一致 ,避免出现不可预料的问题,window 或mac 系统建议考虑使用虚拟机vbox 安装ubuntu。
1.前期准备
在下载源码前需要对环境做一些配置, 首先需要安装jdk,但需要注意:
编译 android 5.x的源码需要安装jdk1.7.x 版本
编译 android 6.x的源码需要安装jdk1.8.x 版本
具体步骤参考 http://source.android.com/source/initializing.html
需要注意的是,安装必要依赖库的过程中很有可能报错,比如gcc 版本问题,cpp 版本问题等。
最好解决方式是确保你的软件源 /etc/apt/sources.list 是正确的。
下面是我的sources.list 的全部内容(ubuntu 12.04)
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse # deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-proposed main restricted universe multiverse deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse deb http://archive.canonical.com/ubuntu trusty partner # deb-src http://archive.canonical.com/ubuntu precise partner deb http://extras.ubuntu.com/ubuntu trusty main # deb-src http://extras.ubuntu.com/ubuntu precise main
2.下载源码
android 官方建议是用repo 同步分支代码,但是在国内的速度你懂得, 所以建议直接下载打包好的android 源码,当然前提要保证源码的来源安全可靠(想想前一段时间xcode漏洞)。
还有一种方式就是在国外的vps上下载源码,打包传回国内,这样至少能保证源码真实可靠。
如果要按照官方推荐的方式下载源码,请参考 http://source.android.com/source/downloading.html
3.编译源码
编译过程参照 http://source.android.com/source/building.html
大概需要3,4个小时 具体看机器配置。
编译完成后即可导出 android studio 工程 可以愉快的使用android studio 阅读整个代码了。
具体步骤:
执行
make idegen && development/tools/idegen/idegen.sh
如果你编译的是 aosp 分支 可能会出现
Exception in thread "main" java.io.FileNotFoundException: ./out/target/product/generic/obj/GYP/shared_intermediates/res.java (Is a directory)
解决方案是 改一下res.java 的名字
mv out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
重新执行
make idegen && development/tools/idegen/idegen.sh
等到编译成功后可以在改回来。
4.相关的下载
下面是我使用的 android 5.1.1_rc1 的源码
android.ipr 也在里面,可以不用编译直接导入android studio 阅读源码(相信很多人不需要编译源码,只是希望能方便的阅读android 源码)。
http://d.mystical.cn/d/android/android-5.1.1_r1.zip
云盘地址
https://yunpan.cn/cxRguULzJDgVK 访问密码 0393
后面我也会继续分享一些 最新 android 源码的下载地址。