美文网首页
全局查找Android系统源码

全局查找Android系统源码

作者: 知用改创 | 来源:发表于2018-07-17 00:24 被阅读81次

    在阅读Android源码的过程中,有时候我们想要知道某个变量或者方法在哪些地方声明、定义抑或是使用过,甚至是某个字符串在哪里出现过,下面以status_bar_height状态栏高度的检索为例,介绍几种全局查找Android系统源码的方法:

    1. 在线检索

    如果你只需要查找该变量在Android原生代码中的定义,那么你可以在http://androidxref.com/网站上检索,该网站是基于OpenGrok源码搜索引擎搭建的Android系统源码浏览网站,若你的网络没有问题,在该网站上的检索极快。在该网站上检索status_bar_height的示例如下图:

    image.png

    2. 利用命令检索

    2.1 首先使用. build/envsetup.sh命令初始化编译环境
    2.2 然后就可以使用cgrep、jgrep、resgrep、mangrep等命令对特定类型的文件进行全局检索。
    cgrep、jgrep、resgrep、mangrep等命令的实现位于build/envsetup.sh文件中,如下图所示:

    image.png

    从源码可以看出,cgrep等命令的实现是通过find、xargs和grep命令进行组合实现对特定类型
    文件进行全局检索的。使用命令检索status_bar_height的示例如下图:

    image.png

    cgrep:在所有的C/C++文件中检索
    ggrep:在gradle文件中检索
    jgrep:在java文件中检索
    resgrep:在res/*.xml文件(资源文件)中检索
    sgrep:在所有源代码中检索

    find命令
    -prune 忽略某个目录或者文件
    -o 选项(参数)拼接

    grep命令
    --color 颜色高亮
    -n 显示行号

    3. 通过Android Studio检索

    首先需要将Android系统源码导入Android Studio中,建立索引(耗时较长),然后才可以进行检索。

    关于如何将Android系统源码导入到Android Studio中,可以参考这篇文章:
    Android Studio导入整个Android系统源码

    4. 通过SouceInsight检索

    首先需要将Android系统源码导入到Source Insight中,建立索引(耗时长),然后才可以进行检索。

    总结

    如果你只需要查找该变量在Android原生代码的定义,推荐你在http://androidxref.com/网站上检索。除此之外,在你没有将Android系统源码导入到Android Studio中建立好索引的情况下,推荐你使用命令进行检索。

    相关文章

      网友评论

          本文标题:全局查找Android系统源码

          本文链接:https://www.haomeiwen.com/subject/pksipftx.html