Android原始碼閱讀姿勢
最近在看《Android進階解密》一書,需要參閱系統原始碼,所以在win平臺折騰了一下AOSP原始碼閱讀環境,下面將過程記錄下,以供參考。
下載原始碼
以AOSP-8.0原始碼為例
下載連結 提取碼: kaae
壓縮檔案大小8.6G,解壓後26G,需要注意下磁碟空間
下載完先不著急解壓,繼續往下看
開啟目錄大小寫支援
眾所周知,windows分割槽是不區分檔案大小寫的,但是aosp中有些目錄和檔名稱完全一致,只是大小寫不同,所以直接解壓會導致原始碼不完整(會覆蓋),從而影響閱讀,但好在Windows10-17107開始,支援按目錄區分大小寫,但是需要手動開啟。
以管理員身份執行 PowerShell 並使用以下命令
開啟
bash
fsutil.exe file setCaseSensitiveInfo <path> enable
關閉
bash
fsutil.exe file setCaseSensitiveInfo <path> disable
還是不著急解壓,繼續往下看。。。
配置windows defender
windows defender是自win10開始自帶的一個保護系統安全的綜合工具,預設是啟用的,並且會開啟全盤實時保護,如果不加以配置,那對於AOSP龐大的原始碼檔案,系統將實時進行掃描,這會很影響效能,我們需要手動新增排除目錄,讓其忽略AOSP目錄。
步驟如下
windows defender->病毒與威脅防護->"病毒與威脅防護"設定->新增或刪除排除項
終於可以解壓原始碼了!!
Source Insight匯入原始碼
閱讀工具推薦使用Source Insight,輕量且功能豐富,對於aosp中的多種開發語言支援完善。
首先新建一個專案
選擇上面解壓的原始碼路徑
新增要閱讀的部分
建議目前要研究哪塊就先新增哪塊,全部新增會影響效能,也沒有必要。
以frameworks為例,選中該目錄後,點選Add Tree,就會將該目錄以及子目錄中的檔案都新增專案中
新增完之後,點選Close,就會進入專案主頁面
Source Insight配置優化
下面說一下我個人喜歡的一些配置
個人習慣將介面配置成上面的佈局樣式,可以參考下
- 佈局1是當前檔案內的變數和方法列表,可以快速檢索需要檢視的程式碼
- 佈局2是閱讀視窗,在視窗左側右鍵單擊可以開啟行號顯示,右側的小地圖開啟方式是,頂部選單欄View->Overview
- 佈局3是專案檔案列表,可以在頂部輸入檔名進行檢索
- 佈局4是上下文視窗,開啟方法(View->Panels->Context Window) 當你在佈局2中點選某個方法或者變數時,該視窗會出現該方法或者變數定義的地方
- 佈局5是引用視窗,開啟方法(View->Panels->Relation Window) 會實時顯示你選中的函式或者方法被引用的位置