工欲善其事,必先利其器。
导语
阅读源码最常见操作的就是在函数/方法的调用与定义之间跳转,对于只有大部分源码来说,都可以通过ctags+vim获得比较好的体验,但对于Android源码这样10G多的大型项目,这种方法就捉襟见肘了,更不必说对高度定制化的搜索需求(如查找某个文件的某个方法)的支持。
OpenGrok其实就是一个搜索引擎,只不过不同于Google、Baidu面向的是网页,OpenGrok面向的是源码,通过建立索引,OpenGrok可以帮助我们更好地在浩如烟海的源码里找到自己需要的那部分。
环境搭建
环境搭建的繁琐程度和最终的便利性成反比,把源码解压出来,随便装一个文本编辑器就可以开始阅读源码了,但是如果你真的这样做就会发现即使查找某个函数/方法的声明都极其耗时,所以希望读者接下来可以保持耐心,因为环境搭建对于源码阅读来说是一件一劳永逸的事情。
对于自学能力强者,建议直接看官方文档:How to setup OpenGrok · oracle/opengrok Wiki
网页浏览器+Servlet
什么要网页浏览器?因为OpenGrok本质是一个建立和处理索引的工具,就像ctags一样,我们一般用的编辑器Vim其实充当了一个显示代码的前端的作用,这个里的网页浏览器其实功能就和Vim类似,用来显示代码。Vim能够直接解析ctags工具生成的tags文件,但网页浏览器却不能,所以需要一个Serv