请尊重分享成果,转载请注明出处,本文来自逆流的鱼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 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

AndroidXRef

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

点击相应的源码版本链接

就可以进入对应的源码分支,如图所示,我进入6.0的最新分支:

本文来自逆流的鱼yuiop,原文链接:http://blog.csdn.net/hejjunlin/article/details/53454514

上图右侧提供在特定目录下搜索,例如在分析 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中的,

本文来自逆流的鱼yuiop,原文链接:http://blog.csdn.net/hejjunlin/article/details/53454514

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

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

  • History:这个几乎没有用,用处肯定也不大,我尝试过各种搜索。

上面只是单一的搜索,如果是多个条件呢?这里依然满足,

如搜索mediacodec.cpp中的start函数,如图所示:

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

本文来自逆流的鱼yuiop,原文链接:http://blog.csdn.net/hejjunlin/article/details/53454514

第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。





如果你觉得好,随手点赞,也是对笔者的肯定,也可以分享此公众号给你更多的人,原创不易

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

  1. 关于查看Android系统源码【Written By KillerLegend】

    可能你会想下载Android系统源码,但是我不知道你会看多少系统的源码,如果你对源码只是偶尔看一次的话,推荐你在线看Android的系统源码,下面提供几种查看android系统源码的方法. 1:打开这 ...

  2. 【转】编译Android系统源码和内核源码

    原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事, ...

  3. 【安卓本卓】Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介

    前言        古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是A ...

  4. FW 编译Android系统源码和内核源码

    编译Android系统源码和内核源码 分类: Android2014-07-21 20:58 7287人阅读 评论(28) 收藏 举报 好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现 ...

  5. 如何阅读Android系统源码-收藏必备

    对于任何一个对Android开发感兴趣的人而言,对于android系统的学习必不可少.而学习系统最佳的方法就如linus所言:"RTFSC"(Read The Fucking So ...

  6. 编译Android系统源码和内核源码

    [日期:2016-01-11] 来源:Linux社区  作者:jiangwei [字体:大 中 小]     把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看 ...

  7. 将Android系统源码导入ecplise

    Android系统源码中带有个IDE的配置文件,目录为:development/ide/ 如果要用eclipse导入查看系统源码,则将development/ide/eclipse/.classpat ...

  8. 将Android系统源码导入Android studio的方法

    Android源码目录结构如下: |-- Makefile|-- abi (applicationbinary interface,应用程序二进制接口,生成libgabi++.so相关库文件)|-- ...

  9. Android FrameWork 学习之Android 系统源码调试

    这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...

随机推荐

  1. CentOS下实用的网络管理工具

    昨天在家把在家待业的笔记本装上了CentOS 7最小版本,今天拿到公司发现没法改Wifi链接,在解决的过程中发现了一个TUI工具非常好用,在此分享给大家. 1. 安装 sudo yum install ...

  2. WebGL文字渲染的那些问题

    THREE.js开发的应用运行在iphone5下发现有些时候会崩溃,跟了几天发现是因为Sprite太多频繁更新纹理占用显存导致的.通常解决纹理频繁更新问题就要用到one draw all方法,放到纹理 ...

  3. JS日期格式化转换方法

    1. 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd.当然是网上的方法,只是总结下. Date.prototype.fo ...

  4. Android Studio安装、配置、第一个程序的那些坑

    最近在上Android课,老师布置了量大题难的作业,然而出师未捷身先死,还没看题目,就被Android Studio的安装和环境配置搞得要死要死的,网上的教程也多也杂,良莠不齐,在经历了5小时通过的搜 ...

  5. Ubuntu系统安装Pyenv

    安装Pyenv curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | ...

  6. “百度杯”CTF比赛 九月场_123(文件备份,爆破,上传)

    题目在i春秋ctf训练营 翻看源码,发现提示: 打开user.php,页面一片空白,参考大佬的博客才知道可能会存在user.php.bak的备份文件,下载该文件可以得到用户名列表 拿去burp爆破: ...

  7. 阅读DSSS.py 并修改成支持python3.6

    项目地址:https://github.com/stamparm/DSSS 功能:一款小型注入工具 代码如下URL:https://github.com/stamparm/DSSS/blob/mast ...

  8. [CQOI2010]内部白点

    Description 无限大正方形网格里有n个黑色的顶点,所有其他顶点都是白色的(网格的顶点即坐标为整数的点,又称整点).每秒钟,所有内部白点同时变黑,直到不存在内部白点为止.你的任务是统计最后网格 ...

  9. hdu 5493 (树状数组)

    题意:在一个队列中,你知道一个人在他左边或者右边比他高的人的个数,求字典序最小的答案 思路:先将人按  矮-->高 排序,然后算出在每个人前面需要预留的位置.树状数组(也可以线段树)解决时,先二 ...

  10. 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

    视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...