在Android studio中調(diào)試aosp源碼

在Android studio中調(diào)試aosp源碼

  1. 可選,修改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
    
  2. 可選,配置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都刪掉。
    
  3. 必選,生成導(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根目錄)。
    
  4. 必選,導(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)目
    
  5. 為當(dāng)前工程配置module依賴。這里要再加一句,沒有這一步,as的tool下的Android設(shè)置不顯示,也就不能打開Android monitor和enable java interface等as常規(guī)操作。并且debugger,avd,sdk按鈕都不可用。

    1. 可選,為當(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
    2. 如果要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
  6. debug源碼,在上一步之后debugger按鈕已經(jīng)可用,選擇好設(shè)備,打好斷點(diǎn),就可以愉快的做一個(gè)debugger了。再多說(shuō)一句,點(diǎn)擊debug按鈕有個(gè)show all processes你一定看得見。

參考

如何使用Android Studio開發(fā)/調(diào)試Android源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容