使用OpenGrok阅读源码

6,607 阅读3分钟

0 前言

打算本周再写一篇关于Android的文章, 却忘了带工作电脑的充电器。上周主要从事了安卓源码的阅读工作,那么今天就来分享下Android源码的阅读总结。不要天真的以为这是篇介绍安卓源码的文章,毕竟一周的时间不足以产生更多的心得体会,而是介绍一种阅读源码的利器——OpenGrok。工欲善其事必先利其器!!!

其实在开发过程中,通常遇到一些阅读源码的工作。只不过由于代码量少的原因,使用 IDE,如:AndroidStudio,和VSCode等文本编辑工具。但由于 AOSP (Android Open Source Project)的代码体系巨大,使用上述工具显得力不从心,那么请使用OpenGrok

1 准备工作

1.1 Java 环境

这是每个使用Java语言开发者必须安装的开发环境,如果你是c/c++等其他语言的开发者,请参阅安装Java环境

1.2 Tomcat 服务

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器。

下载地址:

  1. windows/mac/linux 通用 apache-tomcat-9.0.14.zip

  2. windows 64 专用 apache-tomcat-9.0.14-windows-x64.zip

下载后解压在本地即可。

tomcatbin目录中找到startup.bat( windows )或startup.sh(mac/linux)文件,双击启动tomcat服务。

1.3 Universal Ctags

开源地址及安装教程见:github.com/universal-c…

Windows 系统选择下面的版本下载成功后解压到本地,并将解压后的路径添加至path环境变量。

  1. ctags-2019-01-18_5a2b65f8-x64.zip

  2. ctags-2019-01-18_5a2b65f8-x86.zip

Mac 系统使用命令进程安装。

brew install --HEAD universal-ctags/universal-ctags/universal-ctags

2 配置 Open Grok

2.1 下载

下载页面:github.com/oracle/open… ,最新版本opengrok-1.1.2.tar.gz

2.2 解压 source.war

下载成功后解压在本地,将lib目录下的source.war文件解压到tomcatwebapps目录下。

2.3 添加 data root

data root 用于放置生成的索引文件和配置信息文件configuration.xml,建议在OpenGrok目录下新建data文件夹。

2.4 添加 source root

OpenGrok目录下新建project文件夹作为 source rootOpenGrok认为source root目录下的每个文件夹都是一个项目。可以根据此特性添加多个项目。

2.5 配置configuration.xml

  1. 生成 configuration.xml
java -jar opengrok/lib/opengrok.jar -s opengork/project -d opengrok/data -W opengrok/data/configuration.xml

命令中opengrok表示解压后的opengrok目录。

  1. 配置 configuration.xml

tomcat/webapps/source/WEB-INF/web.xml 修改CONFIGURATION变量,指向刚刚生成的configuration.xml文件路径。比如,楼主电脑的配置如下。

<display-name>OpenGrok</display-name>
<description>A wicked fast source browser</description>
<context-param>
    <description>Full path to the configuration file where OpenGrok can read its configuration</description>
    <param-name>CONFIGURATION</param-name>
    <param-value>D:\develop\opengrok-1.1.1\data\configuration.xml</param-value>
</context-param>

2.6 启动OpenGrok

完成上述操作之后,在浏览器中输入 http://localhost:8080/source 浏览OpenGrok页面。

3 添加源码目录

由于本机没下载Android源码,在此使用OpenSSL源码演示。

OpenSSL地址:github.com/openssl/ope…

只需将需要阅读的原发放在OpenGroksource root目录下。

opengrok/project目录下执行下面的命令:

  1. windows
mklink /J openssl openssl目录
  1. mac/linux
ln -s openssl目录 openssl

再建立索引

java -jar opengrok/lib/opengrok.jar -P -S -v -s opengork/project -d opengrok/data -W opengrok/data/configuration.xml

命令中opengrok表示解压后的opengrok目录。

重启tomcat服务,刷新页面 http://localhost:8080/source/

双击openssl,打开后的页面如下:

或者直接搜索某个文件:

在代码阅读页面,点击方法名和类名,亦会跳转搜索页面。

觉得有用?那打赏一个呗。我要打赏

此处是广告Flueky的技术小站