全文以Android 12 源碼為例
1. 生成IDE相關(guān)文件
idegen專門為IDE環(huán)境調(diào)試源碼而設(shè)計(jì)的工具臊诊, 依次執(zhí)行如下命令:
soruce build/envsetup.sh
mmm development/tools/idegen/
./development/tools/idegen/idegen.sh
以上3個(gè)步驟的含義依次如下:
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í)行完上面三個(gè)命令后在源碼根目錄下會(huì)生成android.ipr
和android.iml
文件
2. 源碼導(dǎo)入Android Studio
打開Android Studio, 點(diǎn)擊 File -> Open
斜脂,選中前面生成的android.ipr文件即可抓艳, 該過程較耗時(shí), 所以下面介紹兩種方式來移除我們不關(guān)心的文件帚戳,讓Android studio 只加載我們使用的源碼來提高IDE 速度
修改配置文件提高加載速度:
打開android.iml
文件玷或,有大量excludeFolder
儡首,是指不會(huì)導(dǎo)入到AS的模塊,默認(rèn)除了以下14個(gè)文件夾之外的所有文件都會(huì)導(dǎo)致到AS工程偏友, 這顯然還會(huì)非常龐大的蔬胯,那么我們可以有選擇的導(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)把全部項(xiàng)目導(dǎo)入到Android Studio,又想刪除怎么辦位他,其實(shí)有一個(gè)簡(jiǎn)單的方法就是進(jìn)入目錄Project Structure -> Modules
氛濒, 可快速去除某些模塊, 其中紅色代碼Exclueded選項(xiàng)(即代表已刪除的目錄), 如下圖:
3. 配置源碼正確跳轉(zhuǎn)
將 AOSP 的源碼導(dǎo)入 AndroidStudio 后,碰到點(diǎn)擊跳轉(zhuǎn)查看源碼鹅髓,還是跳轉(zhuǎn)到 android.jar 泼橘,無法查看真實(shí)源碼的情況, 原因是由于工程配置中andriod.jar
的優(yōu)先級(jí)迈勋,大于本地源碼的優(yōu)先級(jí)。解決方法是將源碼的的優(yōu)先級(jí)提前醋粟。
具體操作如下:
File - Project Structure - Project Settings - Modules - Dependencies - Module Source
,將Module Source 移到最頂 第一行靡菇。操作為:選中 Module source ,一直按 ALT + ↑ (ALT + 向上箭頭)米愿,將其移動(dòng)到第一行厦凤。
4. 配置aidl文件跳轉(zhuǎn)
在閱讀源碼或者開發(fā)時(shí)都會(huì)遇到aidl文件找不到, 下面我們以ActivityManagerService
中IActivityManager
aidl 為例介紹如何使我們的Android Studio 具有aidl 類跳轉(zhuǎn)的能力
添加前提是你已經(jīng)編譯過framework 代碼并按照上面方法將Android源碼引入到Android studio 中
-
搜索我們要查找的aidl 類名稱: 如:
IActivityManager.class
-
找到編譯時(shí)生成的的class 文件,右鍵選擇
copy path/Refrence
copy 相對(duì)路徑
3.在Android Studio 中點(diǎn)擊 File -> Project Structure
打項(xiàng)目結(jié)構(gòu)設(shè)置窗口育苟, 選中 Global Libraries
后點(diǎn)擊上面 +
號(hào)選擇Java
配置上一步copy的路徑较鼓,配置后等待配置信息同步完成即可進(jìn)行跳轉(zhuǎn)
如果在開發(fā)中,我們自己寫的aidl 文件也可以通過上面方法進(jìn)行配置违柏,這樣在寫代碼的時(shí)候就不需要我們自己去手動(dòng)引包博烂,也不會(huì)因?yàn)闆]有提示出現(xiàn)錯(cuò)誤