前文已經講解了Android Studio的安裝和配置,下面咱們繼續講解如何把龐大的Android源代碼加載到Android Studio中方便代碼閱讀和調試,以及如何啓動模擬器加載Android源代碼的編譯結果,這些步驟都很重要,是後面講解調試Android源代碼的基礎。linux
1、使用Android Studio加載Android源代碼android
前文已經講解過Android源代碼的編譯,在此基礎上須要進一步編譯出生成Android Studio配置文件所需的Jar包。在終端窗口先進到Android源代碼所在的目錄,並使用以下命令編譯:web
$ mmm development/tools/idegen
編譯完成後,確認idengen.jar是否已經生成,Linux平臺是out/host/linux-x86/framework/idengen.jar,Mac平臺是out/host/darwin-x86/framework/idegen.jar。接着執行如下命令生成Android Studio的工程配置文件:bash
$ development/tools/idegen/idegen.sh
等到出現相似如下提示即表示執行成功,在源碼的根目錄下生成android.ipr和android.iml兩個配置文件:eclipse
Read excludes: 7ms Traversed tree: 79147ms
編譯成功後,就能夠將Android源代碼導入Android Studio。因爲Android源代碼很龐大,在導入以前先修改android.iml文件,將本身用不到的模塊代碼過濾掉,不然導入過程會很是緩慢。ionic
打開android.iml文件,能夠發現上述步驟idengen.sh腳本已經作了一部分工做,格式爲<excludeFloder url="file://$MODULE_DIR$"/模塊名>:ide
<excludeFolder url="file://$MODULE_DIR$/./external/emma"/> <excludeFolder url="file://$MODULE_DIR$/./external/jdiff"/> <excludeFolder url="file://$MODULE_DIR$/out/eclipse"/> <excludeFolder url="file://$MODULE_DIR$/.repo"/> <excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/> <excludeFolder url="file://$MODULE_DIR$/external/chromium"/> <excludeFolder url="file://$MODULE_DIR$/external/icu4c"/> <excludeFolder url="file://$MODULE_DIR$/external/webkit"/> <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/> <excludeFolder url="file://$MODULE_DIR$/out/host"/> <excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/> <excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/> <excludeFolder url="file://$MODULE_DIR$/out/target/product"/> <excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
此處筆者只保留frameworks和packages模塊,將其餘模塊所有排除,所以在android.iml中繼續添加如下配置,讀者能夠根據本身的須要自行刪減:ui
<excludeFolder url="file://$MODULE_DIR$/abi" /> <excludeFolder url="file://$MODULE_DIR$/art" /> <excludeFolder url="file://$MODULE_DIR$/bionic" /> <excludeFolder url="file://$MODULE_DIR$/bootable" /> <excludeFolder url="file://$MODULE_DIR$/build" /> <excludeFolder url="file://$MODULE_DIR$/cts" /> <excludeFolder url="file://$MODULE_DIR$/dalvik" /> <excludeFolder url="file://$MODULE_DIR$/developers" /> <excludeFolder url="file://$MODULE_DIR$/development" /> <excludeFolder url="file://$MODULE_DIR$/device" /> <excludeFolder url="file://$MODULE_DIR$/docs" /> <excludeFolder url="file://$MODULE_DIR$/external" /> <excludeFolder url="file://$MODULE_DIR$/hardware" /> <excludeFolder url="file://$MODULE_DIR$/libcore" /> <excludeFolder url="file://$MODULE_DIR$/libnativehelper" /> <excludeFolder url="file://$MODULE_DIR$/ndk" /> <excludeFolder url="file://$MODULE_DIR$/out" /> <excludeFolder url="file://$MODULE_DIR$/pdk" /> <excludeFolder url="file://$MODULE_DIR$/platform_testing" /> <excludeFolder url="file://$MODULE_DIR$/prebuilts" /> <excludeFolder url="file://$MODULE_DIR$/sdk" /> <excludeFolder url="file://$MODULE_DIR$/system" /> <excludeFolder url="file://$MODULE_DIR$/toolchain" /> <excludeFolder url="file://$MODULE_DIR$/tools" />
接下來啓動Android Studio,打開菜單「File->Open」,選擇Android源代碼目錄下的android.ipr文件,以下圖左邊所示,右邊是在筆者環境下,Android源代碼加載完成後的結果。url
2、模擬器加載Android源代碼編譯結果調試
一般來講,大多數人都會備有一部Android手機用於Android應用程序開發和調試,但對於Android源代碼,想把編譯結果運行在真機上條件卻比較苛刻,推薦作法是使用和Android版本匹配的Nexus系列手機,不然會出現底層驅動程序不匹配,形成手機沒法正常運行。鑑於此,若是能在模擬器上運行Android源代碼的編譯結果仍是比較有吸引力的,既節省購買手機的費用支出,又減小頻繁刷機的麻煩。
前文已經講解了如何編譯Android源代碼,只須要再配置一下環境,讓模擬器知道去哪加載文件便可。在終端窗口輸入以下命令,若是要避免每次配置環境的麻煩,能夠將這些命令添加到~/.bash_profile腳本[1]中:
export ANDROID_BUILD_TOP=/Volumes/android/ export ANDROID_PRODUCT_OUT=$ANDROID_BUILD_TOP/out/target/product/generic_x86_64 export ANDROID_PRODUCT_OUT_BIN=$ANDROID_BUILD_TOP/out/host/darwin-x86_64/bin export PATH=$ANDROID_PRODUCT_OUT_BIN:$ANDROID_PRODUCT_OUT:$PATH
配置好環境後,繼續在終端窗口執行如下命令便可啓動模擬器[2]:
$ emulator -memory 1024 -partition-size 2048 -accel on -skin WVGA800
以下圖所示是筆者環境模擬器啓動效果,查看Settings應用程序中系統的狀態可看出加載的是最新編譯的結果。
[1] Linux對應的腳本是~/.bashrc
[2] -skin參數後面跟着的是模擬器皮膚名稱,在development/tools/emulator/skins/目錄下能夠查看可用的皮膚