在线看Android系统源码,那些相见恨晚的几种方案

上下观古今,起伏千万途。这篇文章主要讲述在线看Android系统源码,那些相见恨晚的几种方案相关的知识,希望能为你提供帮助。
请尊重分享成果, 转载请注明出处,本文来自逆流的鱼yuiop,原文链接: http://blog.csdn.net/hejjunlin/article/details/53454514
前言: 最近在研究MediaCodec, u盘坏了, 之前下载的源码也就自然没有了, 真是个难过的事情, 不能因为没有源码了, 就阻挡我的计划了呀, 于是就是今天一文, 在线看android源码, 加之此前很多人也有向我留言, 如何看android系统的源码, 今天来敲黑板, 划重点了。
不管是做Android底层开发, 还是做应用层开发, 在Android这条路上走下去, 必须对于Android源码够了解, 如某一个功能, 某一个机制, 或者某一个API, 它到底是如何实现的, 需要 Read the fucking source code, 才能知其然, 知其所以然。下面几种在线看源码的方式:
1, http://androidxref.com
2, http://www.grepcode.com/
3, Android SDK Search插件
来说说这三种方式的体验, http://androidxref.com, 这个同步官方源码, 最新的7.0, 上面也已经有了, 我也比较喜欢这个, 该有的功能应用尽有, 第2个的话, 如图, 还停留在5.1阶段, 也找不到我想要的, 于是果断放弃了。Android SDK Search也还行。下面重点介绍Android SDK Search 插件和androidxref。
http://www.grepcode.com/

在线看Android系统源码,那些相见恨晚的几种方案

文章图片

Android SDK Search
在 Android 开发或者源码分析时, 一般会去查看 Google 官方提供的 Android API, 如果希望深入了解 API 实现的细节, 当然最好的方法就是去看源代码了。对于在线 API 文档, 如果在查看时, 还能够查看到源代码那当然是最好不过的。在 Chrome 浏览器下, 可以安装 Android SDK Search 扩展程序来达到这个目的, 该扩展程序在 Chrome网上应用店截图如下所示。安装完该扩展程序后, 再次搜索 Android API 后, 会在相应的搜索结果后增加一个 view source链接。例如搜索 Activity 类, 结果如图 4 所示。点击 view source链接, 就可以打开 Activity类的源代码, 如图所示, 从网页中可以看出其实是链接到了 Google 的 Android 源码的 Git
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

在线看Android系统源码,那些相见恨晚的几种方案

文章图片

在线看Android系统源码,那些相见恨晚的几种方案

文章图片

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

文章图片

就可以进入对应的源码分支, 如图所示, 我进入6.0的最新分支:
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

本文来自逆流的鱼yuiop,原文链接: http://blog.csdn.net/hejjunlin/article/details/53454514
上图右侧提供在特定目录下搜索, 例如在分析 Framework源码时, 可以选择 frameworks 目录, 这样可以减少搜索范围, 缩短搜索时间, 能够更加精确地定位到需要的源代码。左侧是提供了一些搜索的条件, 其意义如下(在指定的 Project(s)下):
  • Full Search: 进行全文搜索, 会匹配所有的单词、字符串、标识符以及数字等, 例如在frameworks 下通过 Full Search 搜索”mediacodec“
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

点击”search“, 会显示所有包含mediacodec字符(忽略大小写)的结果, 即使是注释也会显示出来, 如下图, 点击对应的链接会打开包含mediacodec所在的文件夹
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

点击左侧文件名如 TrackDecoder.java链接会打开包含mediacodc字符串文件;
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

其他依次类推, 点击右侧每一行的搜索结果链接同样会打开相相应的文件内容;
  • Definition: 搜索符号定义相关的代码, 例如搜索 ondraw 函数的定义, 显示结果如图
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

提示你是否要找onDraw,onChildDraw等方法, 我们点击onDraw, 立刻跳转到如下页面:
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

从搜索结果可以看到, 所有onDraw方法的类都会列出来, 到第6页, 找到我们熟悉的TextureView, 点击进去
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

  • Symbol: 搜索符号, 例如可以搜索类中的成员变量等, 下图显示了通过 Symbol 搜索FEATURE_NO_TITLE的结果
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

平时我们在this.requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏, 这个FEATURE_NO_TITLE就是在Window.java中的,
本文来自逆流的鱼yuiop,原文链接: http://blog.csdn.net/hejjunlin/article/details/53454514
  • File Path: 搜索源码文件名中包含给定字符串的文件, 例如想要搜索文件名包含mediacodec的源码文件, 则可以在 File Path 中填入 mediacodec 进行搜索, 结果如下所示
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

这刚好就是我相要的, 比起在IDE中一个一个看, 这里这个功能不得不说6的飞起。
  • History: 这个几乎没有用, 用处肯定也不大, 我尝试过各种搜索。
上面只是单一的搜索, 如果是多个条件呢? 这里依然满足,
如搜索mediacodec.cpp中的start函数, 如图所示:
在线看Android系统源码,那些相见恨晚的几种方案

文章图片

由于AndroidXRef 使用的是 OpenGrok 引擎, 因此还支持一些其他的搜索方式: 在【http://androidxref.com/6.0.0_r5/help.jsp】,写的相当详细, 感兴趣的同学可以看看。
本文来自逆流的鱼yuiop,原文链接: http://blog.csdn.net/hejjunlin/article/details/53454514
第一时间获得博客更新提醒, 以及更多android干货, 源码分析, 欢迎关注我的微信公众号, 扫一扫下方二维码或者长按识别二维码, 即可关注。


在线看Android系统源码,那些相见恨晚的几种方案

文章图片


如果你觉得好, 随手点赞, 也是对笔者的肯定, 也可以分享此公众号给你更多的人, 原创不易【在线看Android系统源码,那些相见恨晚的几种方案】

    推荐阅读