當前位置:成語大全網 - 書法字典 - 如何在AndroidStudio中查看源代碼

如何在AndroidStudio中查看源代碼

本文以源代碼中的development/tools/idegen/readme作為指導文檔。

環境:Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源代碼。

由於AS是基於IntelliJ IDEA開發的,因此本文也適用於IntelliJ IDEA。

首先修改Android Studio(以下簡稱為)的內存配置

因為它在導入源代碼時會消耗大量內存,所以首先修改idea _ home/bin/Studio 64中的-Xms和-Xmx的值。VMotions(x86機器修改工作室。vmoptions)。文檔中使用了748m,可以自行修改。

其次,配置AS的JDK和SDK。

在IDE中添加壹個不帶類路徑的JDK,以確保源代碼中庫文件的使用。

並將其用作要使用的SDK的Java SDK。如下圖

第三,生成配置文件(*。ipr)作為進口所需。

(1)編譯源代碼(為了確保生成。java文件,如java如果編譯了,就不需要再次編譯了)

②檢查out/host/linux-x86/framework/目錄中是否有idegen.jar。

如果idegen.jar不存在,則執行:

mmm開發/工具/idegen/

Res.java的文件夾會在5.0.1的源代碼中生成,導致idegen.jar運行時拋出FileNotFoundException,這是由於idegen的代碼不夠嚴謹造成的。

我的分享中有修改這個bug的補丁,或者我可以直接使用我分享的idegen.jar。

③執行

開發/工具/idegen/idegen.sh

等待類似以下內容的結果:

讀取排除:5毫秒

遍歷的樹:44078毫秒

此時,IntelliJ IDEA的兩個配置文件(基於IntelliJ IDEA Community Edition開發)將在源代碼的根目錄中生成。

小貼士:

AS導入代碼比較慢,所以建議先修改android.iml排除不需要的代碼。妳可以模仿過濾的語法。回購文件夾,如:

& ltexclude folder URL =“file://$ MODULE _ DIR $/。回購“/》;

& ltexclude folder URL =“file://$ MODULE _ DIR $/ABI“/& gt;

& ltexclude folder URL =“file://$ MODULE _ DIR $/art“/& gt;

這樣,abi和art文件夾將在導入過程中被跳過。過濾器越多,AS的處理速度就越快。

④在AS中打開源代碼根目錄下新生成的android.ipr。

如果在導入過程中出現AS

建議按照其給出的解決方案(網址:/display/idea dev/inotify+watches+limit)解決問題,如下圖所示:

第四,解決源代碼中的跳轉錯誤問題

①為當前項目設置正確的SDK和JDK。

②設置“模塊”的依賴性

首先刪除所有依賴項,只留下上圖中指向的兩個“1”(註意:為了方便起見,此處將其全部刪除。如果妳真的使用。jar,只需添加它們的路徑。

例如,5.0.1 ContactsCommon使用geocoder-2.9.jar和libphonenumber-6.2.jar。

單擊上圖中“2”指向的“+”並選擇上圖中“3”指向的“Jars或目錄”選項,依次添加框架和外部文件夾。例如:

添加框架時,其他版本的代碼可能如下所示:

沒關系,這恰恰說明了問題。單擊“確定”仍將添加框架路徑。

如果仍然有代碼跳轉錯誤,請按照上述步驟將相應代碼的路徑或jar文件添加到其Dependencies選項卡中。

動詞 (verb的縮寫)調試源代碼

我們可以通過在“模塊”中添加“Android框架”來讓AS將新導入的項目視為Android項目,這便於我們調試代碼。

您可以根據上圖中的“1”和“2”添加Android框架支持。

在代碼中添加壹個斷點,然後選擇“運行”-& gt;“將調試器附加到Android進程”或直接單擊下面顯示的圖標。

在彈出的“選擇進程”對話框中,選中“顯示所有進程”,選擇要調試的代碼所在的進程,然後單擊“確定”。

不及物動詞其他人

在代碼的許多地方,Call需要API級別x...出現這個問題是因為我們的項目是壹個Android應用程序項目,並且在源代碼中沒有指定minSdkVersion。

我們只需要將聲明minSdkVersion的AndroidManifest.xml文件添加到源代碼的根目錄中(共享壹個AndroidManifest.xml)。

妳也可以考慮使用build.gradle來解決這個問題。