Android studio (android studio for platform) - ASfP
1. 完整編譯AOSP源碼
有些java文件是在編譯過程中動態(tài)生成的,需要完整編譯一遍,源碼的依賴才能完整。
$ source build/envsetup.sh # 初始化環(huán)境變量
$ make -j16 #完整編譯 且 -j16進程根據(jù)電腦配置相關(guān),一般是處理器/內(nèi)核 數(shù)的一半。
2. 生成IDE導(dǎo)入的工程文件
$ source build/envsetup.sh
$ make idegen
# 或者 mmm development/tools/idegen/ #及 單編framework/idegen.jar
# 如果提示權(quán)限問題,請用sudo執(zhí)行下述命令
$ ./development/tools/idegen/idegen.sh
執(zhí)行完成后,在AOSP根目錄下生成文件:
android.iml # 導(dǎo)入前需先編輯這個文件
android.ipr # 在Android studio中打開這個文件,導(dǎo)入源碼工程
3. 導(dǎo)入前,編輯工程文件
為了提高加載速度需要修改以下部分
編輯android.iml文件,需要修改2部分內(nèi)容:
- 增加excludeFolder列表,排除不需要的源碼路徑,這樣可以加快導(dǎo)入和創(chuàng)建文件索引的速度。在.iml文件中有少了的excludeFolder項,在后面根據(jù)自己需要補充即可。例如:
...
<excludeFolder url="file://$MODULE_DIR$/frameworks"/>
<excludeFolder url="file://$MODULE_DIR$/kernel"/>
<excludeFolder url="file://$MODULE_DIR$/packages"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
...
說明:也可以通過修改development/tools/idegen/excluded-paths文件,增加/排除的路徑。
- 刪除所有
<orderEntry type="module-library">...</orderEntry>項。這些項是引用的源碼中編譯出來的jar包,如果保留,在瀏覽過程中查看類型跳轉(zhuǎn)到這些jar中的class文件,而不是源碼java文件。刪除后,則可以直接跳轉(zhuǎn)到源碼文件。
說明:這些設(shè)置也可以在Android studio:project structure --> project settings --> modules --> dependencies中修改,速度比較慢,不如直接編輯.iml文件方便。
例如:
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/./AMSS/lagvm/LINUX/android/out/target/product/prodname/system/framework/locksettings.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/./AMSS/lagvm/LINUX/android/out/target/product/prodname/system/framework/framework.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
4. 在Android Studio中導(dǎo)入工程
在Android Studio中open打開上面生成的android.ipr文件。如果完成了上面的編輯,并且僅保留所需的源碼目錄,加載時間會比較短。
加載完成后,可以完整的瀏覽、編輯代碼了。
當(dāng)關(guān)閉AS時,會把當(dāng)前的配置和索引保存到文件android.iws中。以后再次打開工程就會很快。
修改Android Studio配置參數(shù):
1)Help - Edit custom Properties:
(對應(yīng)配置文件:~/.config/Google/AndroidStudio$version/idea.properties)
idea.max.intellisense.filesize=100000
2)Help - Edit custom VM options:
(對應(yīng)配置文件:~/.config/Google/AndroidStudio$version/studio64.vmoptions)
-Xms1g
-Xmx5g
如果修改參數(shù)錯誤,導(dǎo)致studio不能正常啟動,可以手動編輯對應(yīng)的配置文件,刪除或者調(diào)整相關(guān)參數(shù)。
5.配置源碼正確跳轉(zhuǎn)
導(dǎo)入工程后要想正常跳轉(zhuǎn)源碼而不是各種jar包,則需要提升源碼的優(yōu)先級。
AndroidStudio - File --> Project Structure --> Project Settings --> Modules --> Dependencies --> Module Source ,將**Module Source **移到最頂 第一行。操作為:選中 Module source ,一直按 ALT + ↑ (ALT + 向上箭頭),將其移動到第一行。

6. 配置aidl文件跳轉(zhuǎn)
添加前提是你已經(jīng)編譯過framework 代碼并按照上面方法將Android源碼引入到Android studio 中.
1.搜索我們要查找的aidl 類名稱: 如:IActivityManager.class

2.找到編譯時生成的的class 文件,右鍵選擇
copy path/Refrence copy 相對路徑
3.在Android Studio 中點擊
File --> Project Structure 打項目結(jié)構(gòu)設(shè)置窗口, 選中 Global Libraries 后點擊上面 + 號選擇Java 配置上一步copy的路徑,配置后等待配置信息同步完成即可進行跳轉(zhuǎn)
如果在開發(fā)中,我們自己寫的aidl 文件也可以通過上面方法進行配置,這樣在寫代碼的時候就不需要我們自己去手動引包,也不會因為沒有提示出現(xiàn)錯誤。