Android應(yīng)用程序的構(gòu)建和運(yùn)行
當(dāng)你創(chuàng)建完第一個(gè) Android 應(yīng)用程序后,就可以編譯它并將它部署到 Android 模擬器或物理設(shè)備上。
在構(gòu)建項(xiàng)目并開始測(cè)試應(yīng)用程序之前,建議您查看當(dāng)前的構(gòu)建配置。
查看默認(rèn)的運(yùn)行/調(diào)試配置
點(diǎn)擊“運(yùn)行|編輯配置(Run | Edit Configurations)”,將顯示以下對(duì)話框:
IntelliJ IDEA 會(huì)自動(dòng)創(chuàng)建一個(gè)與您的項(xiàng)目名稱相同的默認(rèn)運(yùn)行/調(diào)試配置。有關(guān) Android 運(yùn)行/調(diào)試配置中每個(gè)配置選項(xiàng)的詳細(xì)說明,請(qǐng)參閱“運(yùn)行/調(diào)試配置:Android應(yīng)用程序”。
Android添加新的運(yùn)行/調(diào)試配置
我們來創(chuàng)建一個(gè)自定義的構(gòu)建配置:
- 在“運(yùn)行/調(diào)試配置(Run/Debug Configurations)”對(duì)話框中,單擊添加按鈕
并從列表中選擇“Android應(yīng)用程序(Android Application)”:
- 一個(gè)新項(xiàng)目將被添加到左窗格中具有默認(rèn)名稱 Unnamed 的樹中。選擇它并在名稱字段中輸入更有意義的名稱,例如 HelloDroid Emulator:
請(qǐng)注意,新創(chuàng)建的配置以紅色叉號(hào)顯示,表示尚未準(zhǔn)備好使用,因?yàn)槲粗付ㄈ魏文K。
- 接下來,您需要指定可執(zhí)行模塊。展開模塊下拉列表并選擇HelloDroid:它是您的項(xiàng)目中唯一的可執(zhí)行模塊。
當(dāng)你選擇一個(gè)模塊時(shí),圖標(biāo)上的紅十字會(huì)消失,因?yàn)楝F(xiàn)在你的運(yùn)行/調(diào)試配置被填入了最低要求的信息。
- 接下來,確保在安裝選項(xiàng)下選擇了“默認(rèn) APK(Default APK)”選項(xiàng)。選擇此選項(xiàng)后,應(yīng)用程序?qū)⒆詣?dòng)部署在目標(biāo)設(shè)備上。
- 接下來,您需要確定要啟動(dòng)哪個(gè)活動(dòng)作為模塊的入門活動(dòng)。您可以啟動(dòng)在該 AndroidManifest 文件中配置的默認(rèn)活動(dòng),或者選擇一個(gè)自定義活動(dòng)。由于您的示例應(yīng)用程序只有一個(gè)活動(dòng),請(qǐng)選擇“默認(rèn)活動(dòng)(Default Activity)”選項(xiàng)。
- 最后,您需要指定將啟動(dòng)應(yīng)用程序的目標(biāo)設(shè)備。讓我們選擇“模擬器(Emulator)”選項(xiàng)。如果已配置 Android 虛擬設(shè)備,則可以從“首選Android虛擬設(shè)備(Prefer Android Virtual Device)”下拉列表中選擇一個(gè)設(shè)備。如果您沒有配置設(shè)備,請(qǐng)執(zhí)行以下步驟:
- 從主菜單中選擇:工具| Android | AVD Manager(Tools | Android | AVD Manager)來啟動(dòng)“Android 虛擬設(shè)備管理器(Android Virtual
Device Manager)”:
- 點(diǎn)擊“創(chuàng)建一個(gè)虛擬設(shè)備(Create a virtual device)”。在打開的對(duì)話框中,在左側(cè)窗格中選擇您要模擬的 Android 設(shè)備的類型:電視、手機(jī)、穿戴或平板電腦。我們選擇手機(jī)。在中央窗格中選擇手機(jī)型號(hào)(例如,Nexus 5X),然后單擊下一步:
- 在下一步中,選擇要在虛擬設(shè)備上模擬的系統(tǒng)映像,即操作系統(tǒng)版本,Android API 級(jí)別,應(yīng)用程序二進(jìn)制界面(ABI)和目標(biāo)SDK版本:
- 在最后一步中,您可以修改AVD名稱并選擇虛擬設(shè)備屏幕的啟動(dòng)大小和方向:
- 單擊完成以完成向?qū)?。新?chuàng)建的Android虛擬設(shè)備將被添加到設(shè)備列表中:
- 返回到“運(yùn)行/調(diào)試配置(Run/Debug Configurations)”對(duì)話框。
- 請(qǐng)注意,Android 虛擬設(shè)備(AVD)只是一個(gè)配置文件,通過該文件可以為模擬器定義模擬器的硬件和軟件選項(xiàng)。除AVD設(shè)置外,還可以配置補(bǔ)充參數(shù),例如要模擬的網(wǎng)絡(luò)傳輸速率,網(wǎng)絡(luò)延遲(初始輸入和輸出之間的時(shí)間延遲)等。要訪問這些設(shè)置,請(qǐng)?jiān)?AVD Manager 中選擇從列表中選擇模擬器,然后單擊右側(cè)的“編輯此AVD(Edit this AVD)” 圖標(biāo)
。在“虛擬設(shè)備配置(Virtual Device Configuration)”對(duì)話框中,單擊“顯示高級(jí)設(shè)置(Show Advanced Settings)”按鈕:
然后這些參數(shù)作為命令行參數(shù)傳遞給仿真器。
- 在“運(yùn)行/調(diào)試配置(Run/Debug Configurations)”對(duì)話框中,單擊“確定(OK)”以保存新創(chuàng)建的配置。
- 請(qǐng)注意,如果您在配置 Android 虛擬設(shè)備時(shí)選擇了 x86 應(yīng)用程序二進(jìn)制界面,則在運(yùn)行和測(cè)試該應(yīng)用程序之前,您還需要安裝英特爾x86模擬器加速器,否則當(dāng)您嘗試構(gòu)建應(yīng)用程序時(shí),IntelliJ IDEA 會(huì)引發(fā)錯(cuò)誤項(xiàng)目。為此,你需要:
- 啟動(dòng)SDK管理器:在主菜單中,選擇:工具| Android | SDK管理器(Tools | Android | SDK Manager)。
- 向下滾動(dòng)到名為 Extras 的文件夾。
- 在此文件夾中找到 Intel x86 Emulator Accelerator(HAXM
安裝程序),選擇相應(yīng)的復(fù)選框,然后單擊 Install packages 按鈕。
- 在打開的對(duì)話框中,接受許可協(xié)議,然后單擊“安裝(Install)”。
- 導(dǎo)航到 Android SDK 安裝目錄(SDK 路徑顯示在 Android SDK 管理器窗口的頂部 )。在 \extras\intel\Hardware_Accelerated_Execution_Manager 文件夾中,找到該 intelhaxm-android.exe 文件并雙擊以啟動(dòng)它。
- 按照英特爾硬件加速執(zhí)行管理器安裝向?qū)У恼f明完成安裝。
在模擬器上測(cè)試Android應(yīng)用程序
要生成項(xiàng)目,可以按 Shift+F10 或單擊編輯器的右上角的導(dǎo)航欄上的“運(yùn)行”圖標(biāo)
:

該項(xiàng)目將根據(jù)當(dāng)前在下拉列表中選擇的運(yùn)行/調(diào)試配置進(jìn)行構(gòu)建。如果沒有錯(cuò)誤發(fā)生,IntelliJ IDEA 會(huì)將二進(jìn)制文件和資源打包到 APK 文件中,并將其上傳到Android 模擬器:

如果 Android 模擬器尚未啟動(dòng)并運(yùn)行,IntelliJ IDEA 將在上傳應(yīng)用程序之前對(duì)其進(jìn)行初始化。模擬器接收并安裝包并通過調(diào)用指定的啟動(dòng)活動(dòng)來啟動(dòng)它:

在物理設(shè)備上測(cè)試Android應(yīng)用程序
要在真實(shí)的 Android 設(shè)備上測(cè)試您的應(yīng)用程序,您需要:
- 添加運(yùn)行/調(diào)試配置,并確保您在目標(biāo)設(shè)備下選擇 USB 設(shè)備。
- 確保 Android 設(shè)備通過 USB 電纜連接到計(jì)算機(jī)。
- 按下 Shift+F10 或點(diǎn)擊編輯器右上角的導(dǎo)航欄中的運(yùn)行圖標(biāo)
。
如果您的應(yīng)用程序安裝失敗,這很可能意味著該設(shè)備未配置為在 Android 應(yīng)用程序商店之外安裝應(yīng)用程序。在您的設(shè)備上啟用此功能以測(cè)試應(yīng)用程序。
在 Android 4.2 或更高版本上,請(qǐng)執(zhí)行以下操作:
- 打開設(shè)備的設(shè)置(Settings)。
- 滾動(dòng)到關(guān)于手機(jī)或關(guān)于平板電腦,然后點(diǎn)擊它。
- 滾動(dòng)到底部并點(diǎn)擊 Build number 7次,直到您看到“您是開發(fā)人員!” 信息。通過這樣做,您可以在設(shè)備上解鎖 USB 調(diào)試模式。
- 現(xiàn)在導(dǎo)航到設(shè)置| 開發(fā)人員選項(xiàng)| 調(diào)試| USB調(diào)試(Settings | Developer Options | Debugging | USB Debugging),讓您的手機(jī)部署非打包應(yīng)用程序。
調(diào)試Android應(yīng)用程序
IntelliJ IDEA允許您使用相應(yīng)的運(yùn)行/調(diào)試配置在模擬器或物理設(shè)備上以調(diào)試模式啟動(dòng)Android應(yīng)用程序。
要調(diào)試您的應(yīng)用程序,您需要在源代碼中設(shè)置斷點(diǎn):將插入符號(hào)放在可執(zhí)行的行上,然后單擊左側(cè)的溝槽區(qū)域。在想要切換斷點(diǎn)的行旁邊會(huì)出現(xiàn)一個(gè)紅色圓圈,并且該行會(huì)標(biāo)記為粉紅色:

要啟動(dòng)調(diào)試會(huì)話,請(qǐng)按 Shift+F9 或單擊編輯器的右上角的導(dǎo)航欄中的“調(diào)試”圖標(biāo)
。調(diào)試工具窗口將被激活,在那里你可以單步執(zhí)行程序,檢查變量,視圖,框架和線程,并分析系統(tǒng)中的信息和錯(cuò)誤信息控制臺(tái)選項(xiàng)卡。
分析調(diào)試輸出
在 IntelliJ IDEA 中,通過支持存儲(chǔ)系統(tǒng)調(diào)試輸出日志的 logcat 功能來提供 Android 應(yīng)用程序的調(diào)試。日志消息包含模擬器拋出錯(cuò)誤時(shí)的堆棧跟蹤,因此您可以導(dǎo)航到源代碼中的異常位置。
在 IntelliJ IDEA 中,可通過 Android 監(jiān)視器工具窗口的 Logcat 選項(xiàng)卡提供 logcat 功能(有關(guān)詳細(xì)信息,請(qǐng)參閱使用Logcat調(diào)試Android應(yīng)用程序):

您還可以在運(yùn)行/調(diào)試配置的其他選項(xiàng)卡中配置其他logcat選項(xiàng):

更多建議: