1. 程式人生 > >使用Android Studio閱讀整個Android原始碼

使用Android Studio閱讀整個Android原始碼

之前一直在windows下用source insight閱讀android原始碼,效果非常好。
後來遠端異地伺服器,網路限制,一直用ssh + vim,現在主要還是以這種方式。
最近發現一個不錯的東西(早就有了),在android原始碼中有這麼一個目錄development/tools/idegen。
顧名思義,是生成ide的project檔案,主要是生成intellij的project檔案,當然也可用於android studio。
使用之後,發現效果超棒,所以這裡專門撰文推薦。

1、效果圖

2、編譯idegen模組

編譯原始碼idegen模組及生成AS配置檔案(*.ipr)

在開始編譯idegen模組前,你一定知道需要先全域性編譯出out目錄及相關檔案吧,這個不再過多說了,我們通過如下命令編譯idegen模組:


mmm development/tools/idegen/
這行命令的意思是編譯idegen這個模組專案,然後生成idegen.jar檔案(不信你自己去檢視這個模組的Android.mk的目標吧,不多解釋)。執行完以後如果看到如下資訊則說明編譯OK:
……
#### make completed successfully (7 seconds) ####
接著執行如下指令碼:
development/tools/idegen/idegen.sh
這行命令的意思是在根目錄生成對應的android.ipr、android.iml IEDA工程配置檔案。等待片刻得到類似如下資訊說明OK:
Read excludes: 21ms
Traversed tree: 194799ms
通過如上操作我們就完成了基本的原始碼配置工作。 原始碼要編過,不然idegen沒法生成。
提示:
1 2 3 4 5 // 找不到idegen,需要全域性編譯一下 /* ubuntu:~/Data/cyanogenmod$ . development/tools/idegen/idegen.sh Couldn't find idegen.jar. Please run make first. */

但是我相信很多看原始碼的人是不需要編譯的,所以只要我上傳一個idegen.jar:
http://download.csdn.net/download/zoulu1/9436609
把這個檔案copy到out/host/linux-x86/framework/目錄下:

1 $ cp idegen.jar ../cyanogenmod/out/host/linux-x86/framework/idegen.jar

然後在cyanogenmod目錄下執行:

1 2 3 4 5 /* $ . development/tools/idegen/idegen.sh Read excludes: 21ms Traversed tree: 54700ms */

在我的電腦上花了54s多生成完畢,檢視目錄,多了2個檔案:android.ipr和android.iml。

3、匯入到android studio
開啟Android studio,點選File > Open,選擇剛剛生成的android.ipr就好了。
過一會兒可以在android studio完美打開了,如前面的截圖

4、小結
可以結合android studio,介面,智慧提示都比source insight要好,超讚!