Android 源码编译经验分享, 以及如何使用Android studio 阅读整个源码

yinwei0011 9年前

来自: 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 源码的下载地址。