全文以Android 12 源碼為例
1. 生成IDE相關(guān)文件
idegen專門為IDE環(huán)境調(diào)試源碼而設(shè)計的工具, 依次執(zhí)行如下命令:
soruce build/envsetup.sh
mmm development/tools/idegen/
./development/tools/idegen/idegen.sh
以上3個步驟的含義依次如下:
Step 1: 用于初始化環(huán)境變量
Step 2: 生成文件out/host/linux-x86/framework/idegen.jar
Step 3: 源碼根目錄生成文件android.ipr(工程相關(guān)設(shè)置), android.iml(模塊相關(guān)配置)
執(zhí)行完上面三個命令后在源碼根目錄下會生成android.ipr和android.iml 文件
2. 源碼導(dǎo)入Android Studio
打開Android Studio, 點擊 File -> Open,選中前面生成的android.ipr文件即可, 該過程較耗時, 所以下面介紹兩種方式來移除我們不關(guān)心的文件,讓Android studio 只加載我們使用的源碼來提高IDE 速度
修改配置文件提高加載速度:
打開android.iml文件,有大量excludeFolder,是指不會導(dǎo)入到AS的模塊,默認(rèn)除了以下14個文件夾之外的所有文件都會導(dǎo)致到AS工程, 這顯然還會非常龐大的,那么我們可以有選擇的導(dǎo)入 如下:
<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/host"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
Android stuido 內(nèi)修改
如果已經(jīng)把全部項目導(dǎo)入到Android Studio,又想刪除怎么辦,其實有一個簡單的方法就是進(jìn)入目錄Project Structure -> Modules, 可快速去除某些模塊, 其中紅色代碼Exclueded選項(即代表已刪除的目錄), 如下圖:

3. 配置源碼正確跳轉(zhuǎn)
將 AOSP 的源碼導(dǎo)入 AndroidStudio 后,碰到點擊跳轉(zhuǎn)查看源碼,還是跳轉(zhuǎn)到 android.jar ,無法查看真實源碼的情況, 原因是由于工程配置中andriod.jar的優(yōu)先級,大于本地源碼的優(yōu)先級。解決方法是將源碼的的優(yōu)先級提前。
具體操作如下:
File - Project Structure - Project Settings - Modules - Dependencies - Module Source ,將Module Source 移到最頂 第一行。操作為:選中 Module source ,一直按 ALT + ↑ (ALT + 向上箭頭),將其移動到第一行。

4. 配置aidl文件跳轉(zhuǎn)
在閱讀源碼或者開發(fā)時都會遇到aidl文件找不到, 下面我們以ActivityManagerService中IActivityManager aidl 為例介紹如何使我們的Android Studio 具有aidl 類跳轉(zhuǎn)的能力
添加前提是你已經(jīng)編譯過framework 代碼并按照上面方法將Android源碼引入到Android studio 中
-
搜索我們要查找的aidl 類名稱: 如:
IActivityManager.class
android_source_as_find_aidl.png.png -
找到編譯時生成的的class 文件,右鍵選擇
copy path/Refrencecopy 相對路徑
android_source_as_find_aidl_path.png.png
3.在Android Studio 中點擊 File -> Project Structure 打項目結(jié)構(gòu)設(shè)置窗口, 選中 Global Libraries 后點擊上面 + 號選擇Java 配置上一步copy的路徑,配置后等待配置信息同步完成即可進(jìn)行跳轉(zhuǎn)

如果在開發(fā)中,我們自己寫的aidl 文件也可以通過上面方法進(jìn)行配置,這樣在寫代碼的時候就不需要我們自己去手動引包,也不會因為沒有提示出現(xiàn)錯誤

