源码下载

参考官方doc,需要自备梯子

选定分支

我自己的是Nexus6,写这篇日志时,当前官网适配的最新版本是 7.1.1_r45,因此我的源码编译和阅读都是基于这个分支,手机上也是运行的这个版本。

工欲善其事,必先利其器

  • Windows : Source Insight,跟踪代码的一大利器
  • Linux : wine + Source Insight,各种问题,够折腾
  • Linux : AndroidStudio,各种java索引跳转溜溜的,除了native代码

因此,我采用了AndroidStudio导入Android源码的方式来浏览源码

这样唯一一个问题就是native代码的阅读,需要自己手动全局查找:

1.查找某个类:Ctrl + Shift + F,然后输入类名称,比如查找native的Looper类,可以通过全局搜索” Looper {“,来定位到类定义位置。

2.查找某个方法: Ctrl + Shift + F,

  • 方法名
  • 方法名 + {
  • 正则表达式:” “ + 方法名 + [(] (.*) [)] + [\n] + [{]
  • 某个类中的某个方法,直接搜: “ “ + 方法名 + “(“
  • 有些方法是类定义的C++方法,可以采用: “::” + 方法名, 的方式来搜索

3.查找某个文件: Ctrl + Shift + N(或者按两次), 输入文件名,如果有多个匹配,需要谨慎选择,通常情况下都是优先匹配到的第一个文件。

如此,我们就可以遨游在AndroidSource的海洋里了

参考链接

https://source.android.com/source/downloading
http://blog.csdn.net/yanbober/article/details/48846331
http://www.runoob.com/regexp/regexp-syntax.html