如何在线看Android系统源码

站在巨人的肩膀上学习~
本文 AndroidXRef的详细使用内容及截图 转载自 逆流的鱼yuiop,原文链接:http://blog.csdn.net/hejjunlin/article/details/53454514

之前我们说过使用SourceInsight查看Framework的源码,今天我们再来说一个在线看Android源码的方式☛AndroidXRef

http://androidxref.com的详细使用如下(包看包会):

AndroidXRef (真心好用)

AndroidXRef(http://androidxref.com/)项目提供 Android 源码的交叉索引,可以快速的搜索符合特定条件的 Android 源代码,后台是基于 OpenGrok 引擎,OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。AndroidXRef 提供了完整的 Android kernel源码的索引。在 AndroidXRef 主页的右侧显示了可用的源码版本,如图所示,
点击相应的源码版本链接
在这里插入图片描述

就可以进入对应的源码分支,如图所示,我进入6.0的分支:
在这里插入图片描述
上图右侧提供在特定目录下搜索,例如在分析 Framework源码时,可以选择 frameworks 目录,这样可以减少搜索范围,缩短搜索时间,能够更加精确地定位到需要的源代码。左侧是提供了一些搜索的条件,其意义如下(在指定的 Project(s)下):

  • Full Search: 进行全文搜索,会匹配所有的单词、字符串、标识符以及数字等,例如在frameworks 下通过 Full Search 搜索”mediacodec“
    在这里插入图片描述

  • 点击”search“,会显示所有包含mediacodec字符(忽略大小写)的结果,即使是注释也会显示出来,如下图,点击对应的链接会打开包含mediacodec所在的文件夹
    在这里插入图片描述

点击左侧文件名如 TrackDecoder.java链接会打开包含mediacodc字符串文件;
在这里插入图片描述
其他依次类推,点击右侧每一行的搜索结果链接同样会打开相相应的文件内容;

  • Definition:搜索符号定义相关的代码,例如搜索 ondraw 函数的定义,显示结果如图
    在这里插入图片描述
    提示你是否要找onDraw,onChildDraw等方法,我们点击onDraw,立刻跳转到如下页面:
    在这里插入图片描述
    从搜索结果可以看到,所有onDraw方法的类都会列出来,到第6页,找到我们熟悉的TextureView,点击进去
    在这里插入图片描述
  • Symbol:搜索符号,例如可以搜索类中的成员变量等,下图显示了通过 Symbol 搜索FEATURE_NO_TITLE的结果
    在这里插入图片描述

平时我们在this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏,这个FEATURE_NO_TITLE就是在Window.java中的,

  • File Path:搜索源码文件名中包含给定字符串的文件,例如想要搜索文件名包含mediacodec的源码文件,则可以在 File Path 中填入 mediacodec 进行搜索,结果如下所示
    在这里插入图片描述

这刚好就是我相要的,比起在IDE中一个一个看,这里这个功能不得不说6的飞起。

  • History:这个几乎没有用,用处肯定也不大,我尝试过各种搜索。
    上面只是单一的搜索,如果是多个条件呢?这里依然满足,
    如搜索mediacodec.cpp中的start函数,如图所示:
    在这里插入图片描述

由于AndroidXRef 使用的是 OpenGrok 引擎,因此还支持一些其他的搜索方式:在【http://androidxref.com/6.0.0_r5/help.jsp】,写的相当详细,感兴趣的同学可以看看。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值