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
應用伺服器,屬於輕量級應用伺服器。
下載地址:
-
windows/mac/linux 通用 apache-tomcat-9.0.14.zip
-
windows 64 專用 apache-tomcat-9.0.14-windows-x64.zip
下載後解壓在本地即可。
在tomcat
的bin
目錄中找到startup.bat
( windows )或startup.sh
(mac/linux)檔案,雙擊啟動tomcat
服務。
1.3 Universal Ctags
開源地址及安裝教程見:github.com/universal-c…
Windows 系統選擇下面的版本下載成功後解壓到本地,並將解壓後的路徑新增至path
環境變數。
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
檔案解壓到tomcat
的webapps
目錄下。
2.3 新增 data root
data root
用於放置生成的索引檔案和配置資訊檔案configuration.xml
,建議在OpenGrok
目錄下新建data
資料夾。
2.4 新增 source root
在OpenGrok
目錄下新建project資料夾作為 source root
。OpenGrok
認為source root
目錄下的每個資料夾都是一個專案。可以根據此特性新增多個專案。
2.5 配置configuration.xml
- 生成 configuration.xml
java -jar opengrok/lib/opengrok.jar -s opengork/project -d opengrok/data -W opengrok/data/configuration.xml
複製程式碼
命令中opengrok表示解壓後的opengrok目錄。
- 配置 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:developopengrok-1.1.1dataconfiguration.xml</param-value>
</context-param>
複製程式碼
2.6 啟動OpenGrok
完成上述操作之後,在瀏覽器中輸入 http://localhost:8080/source 瀏覽OpenGrok
頁面。
3 新增原始碼目錄
由於本機沒下載Android
原始碼,在此使用OpenSSL
原始碼演示。
OpenSSL
地址:github.com/openssl/ope…
只需將需要閱讀的原發放在OpenGrok
的source root
目錄下。
在opengrok/project
目錄下執行下面的命令:
- windows
mklink /J openssl openssl目錄
複製程式碼
- 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的技術小站