OpenGrok一個快速、便于使用的源代碼搜索與對照引擎。它幫助你搜索,對照,定位你的源代碼樹。它能夠明白各種程序文件格式和版本控制歷史記錄。
AndroidXRef(網(wǎng)址:http://androidxref.com/)項目提供 Android 源碼的交叉索引,可以快速的搜索符合特定條件的 Android 源代碼,后臺是基于 OpenGrok 引擎,OpenGrok 主要用來在源碼中搜索、交叉索引以及進(jìn)行導(dǎo)航。AndroidXRef 提供了完整的 Android 源碼的索引,包括內(nèi)核源碼。在 AndroidXRef 主頁的右側(cè)顯示了可用的源碼版本,如圖1所示,點擊相應(yīng)的源碼版本鏈接就可以進(jìn)入對應(yīng)的源碼分支,如圖2所示。

圖片.png

圖片.png
1、Full Search: 進(jìn)行全文搜索,會匹配所有的單詞、字符串、標(biāo)識符以及數(shù)字等,例如在frameworks 下通過 Full Search 搜索”activity”,則會顯示所有包含 activity 字符(忽略大小寫)的結(jié)果,即使是注釋也會顯示出來,如圖 3 所示。點擊綠色背景的鏈接會打開包含activity 字符串文件所在的文件夾;點擊左側(cè)文件名如 native_activity.cpp 鏈接會打開包含activity 字符串文件;點擊右側(cè)每一行的搜索結(jié)果鏈接同樣會打開相應(yīng)的文件內(nèi)容;

圖片.png
2、Definition:搜索符號定義相關(guān)的代碼,例如搜索 startActivityIfNeeded 函數(shù)的定義,顯示結(jié)果如圖所示從搜索結(jié)果可以看到,右側(cè)綠色字體表明了是位于 Activity 類中的 方法;

圖片.png
3、Symbol:搜索符號,例如可以搜索類中的成員變量等,如圖顯示了通過 Symbol 搜索WINDOW_HIERARCHY_TAG 的結(jié)果;

圖片.png
4、 File Path:搜索源碼文件名中包含給定字符串的文件,例如想要搜索文件名包含 Activity的源碼文件,則可以在 File Path 中填入 Activity 進(jìn)行搜索,結(jié)果如所示

圖片.png
5、當(dāng)然可以通過組合的方式使用上述提到的搜索方法,例如想在 Activity.java 文件中搜索finish 函數(shù)的定義,則可以在 Definition 中填入”finish”,在 File Path 中填入”Activity.java”,搜索結(jié)果如圖 所示

圖片.png