在Android studio中調(diào)試aosp源碼
-
可選,修改Android studio的內(nèi)存配置
配置文件位置為: IDEA的是IDEA_HOME/bin/idea.vmoptions AS的是32位電腦AS_HOME/bin/studio.vmoptions,64位電腦AS_HOME/bin/studio64.vmoptions 在對(duì)應(yīng)設(shè)置修改為 -Xms748m 和 -Xmx748m -
可選,配置as的jdk、sdk
添加空的SDK的原因是AOSP是以項(xiàng)目的形式導(dǎo)入的,而IDEA/AS的項(xiàng)目至少需要一個(gè)SDK,否則會(huì)報(bào)錯(cuò)。 而我們使用空SDK就解決了這個(gè)錯(cuò)誤并且在代碼跳轉(zhuǎn)時(shí)不會(huì)跳轉(zhuǎn)到桌面版的Java SDK中,而是在Android的源代碼里。 我們可以創(chuàng)建一個(gè)1.7 (No Libraries)的JDK,然后將它c(diǎn)lasspath中所有的jar都刪掉。 -
必選,生成導(dǎo)入AS所需要的配置文件(android.ipr)
1. 編譯源碼,如果是編譯過(guò)的源碼省略該步驟,注意aosp如果沒有編譯過(guò)是不會(huì)生成下一步的idegen.jar文件。 2. 執(zhí)行mmm development/tools/idegen/,執(zhí)行該命令生成idegen.jar文件 3. 執(zhí)行sh development/tools/idegen/idegen.sh,執(zhí)行該命令生成android.ipr和android.iml文件(在Android根目錄)。 -
必選,導(dǎo)入源碼。
1. 可選,修改android.iml文件,將自己用不到的代碼exclude出去。 <excludeFolder url="file://$MODULE_DIR$/.repo" /> <excludeFolder url="file://$MODULE_DIR$/abi" /> <excludeFolder url="file://$MODULE_DIR$/art" /> 2. 通過(guò)Android studio菜單欄File->open->android.ipr導(dǎo)入aosp項(xiàng)目 -
為當(dāng)前工程配置module依賴。這里要再加一句,沒有這一步,as的tool下的Android設(shè)置不顯示,也就不能打開Android monitor和enable java interface等as常規(guī)操作。并且debugger,avd,sdk按鈕都不可用。
-
可選,為當(dāng)前工程設(shè)置正確的sdk和jdk。打開File->project structure,選擇project將project sdk設(shè)置為源碼對(duì)應(yīng)的sdk,將project language level設(shè)置為源碼對(duì)應(yīng)的jdk level,例如我的是4.4源碼就選sdk為api 19, jdk1.6。這里選錯(cuò)應(yīng)該也沒有問(wèn)題-.-本人電腦不方便截圖,以下為步驟盜圖 150419193221875.png
-
如果要debug源碼是必須的,設(shè)置modules的依賴。打開File->project structure,選擇modules,選擇dependencies,現(xiàn)將所有依賴都刪掉,保留最下邊的<Mudule source>和Android API XX Platform,然后點(diǎn)擊+號(hào),選擇jars or directories,添加aosp/external目錄和aosp/frameworks目錄,在最新的as上顯示frameworks導(dǎo)入后為empty library,無(wú)礙。-.-本人電腦不方便截圖,以下為步驟盜圖 150419193221874.png
-
可選,為當(dāng)前工程設(shè)置正確的sdk和jdk。打開File->project structure,選擇project將project sdk設(shè)置為源碼對(duì)應(yīng)的sdk,將project language level設(shè)置為源碼對(duì)應(yīng)的jdk level,例如我的是4.4源碼就選sdk為api 19, jdk1.6。這里選錯(cuò)應(yīng)該也沒有問(wèn)題-.-本人電腦不方便截圖,以下為步驟盜圖
debug源碼,在上一步之后debugger按鈕已經(jīng)可用,選擇好設(shè)備,打好斷點(diǎn),就可以愉快的做一個(gè)debugger了。再多說(shuō)一句,點(diǎn)擊debug按鈕有個(gè)show all processes你一定看得見。

