[Android]Android Studio 匯入FWK 和 packages app 等原始碼
start:
之前一直用source insight + opengrok組合看android原始碼,包括Java,C/C++等,覺得挺方便了的。
最近負責的模組重點轉向FWK,想加一個工具Android studio。
用 AS 載入 FWK / packages_app等 java,XML檔案來檢視Android 上層原始碼,發揮AS 的實用性。
本文將AS匯入android原始碼的step加以記錄。
1. 準備好原始碼。可參考如下配置,不能文明上網的,可以用國內的Android的映象源。
https://source.android.com/source/downloading.html
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
可以在命令後面加上 --depth=1 ,指定接下來的repo sync指令, 我們只需要下載 repo init命令中所指定分支的最後一版資料。
如果某個project要下載完整的,可以在對應的project下(比如 Frameworks/base)執行 git fetch --unshallow
2. 編譯原始碼。
source build/envsetup.sh
lunch xxx_userdebug
time make -j32 2>&1 | tee build_userdebug.log; date
3.生成IEDA工程配置檔案。
mmm development/tools/idegen/
sudo ./development/tools/idegen/idegen.sh
用命令在android根目錄下生成以下三個檔案:
android.ipr:通常是儲存工程相關的設定,比如編譯器配置,入口,相關的libraries等
android.iml:則是主要是描述了modules,比如modules的路徑,依賴關係等.
android.iws:則主要是包含了一些個人工作區的設定.
4.Android studio載入。
使用AS開啟android.ipr檔案,就可以匯入系統原始碼了。
由於Android系統原始碼比較龐大,匯入比較耗時,建議先修改android.iml排除一些程式碼。
語法如下
<excludeFolder url="file://$MODULE_DIR$/.repo" />
如果只檢視FWK,可以如下新增
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/cts" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/device" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/hardware" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/ndk" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/packages" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
另外,如果AS 和 code 在 ubuntu下,直接載入全部的 Java 程式碼, 也不費一頓飯的時間,親測。
Windows下,卡卡卡,親測。
end.