Android Studio 的運(yùn)行配置
前面的小節(jié)我們介紹了代碼編輯和資源管理方面的知識(shí),從本小結(jié)開(kāi)始我們學(xué)習(xí)編譯運(yùn)行相關(guān)的知識(shí),首先我們學(xué)習(xí)下編譯運(yùn)行前的配置。
1. 默認(rèn)配置
在運(yùn)行、調(diào)試我們的代碼時(shí),Android Studio 使用運(yùn)行/調(diào)試配置確定如何執(zhí)行操作。通常,默認(rèn)配置已可滿足運(yùn)行或調(diào)試應(yīng)用所需。在我們創(chuàng)建項(xiàng)目時(shí),Android Studio 會(huì)根據(jù) Android App 模板 為主 Activity 創(chuàng)建一個(gè)默認(rèn)運(yùn)行/調(diào)試配置。
要打開(kāi) Run/Debug Configurations 對(duì)話框,請(qǐng)依次選擇 Run > Edit Configurations。此時(shí)將顯示 Run/Debug Configurations 對(duì)話框,如下圖:
此對(duì)話框會(huì)在左側(cè)面板中的 Templates 文件夾下方顯示默認(rèn)模板,并在 Templates 文件夾上方顯示我們已經(jīng)定義的配置。
在我們創(chuàng)建項(xiàng)目時(shí) Android Studio 會(huì)根據(jù) Android App 模板 為主 Activity 創(chuàng)建一個(gè)默認(rèn)運(yùn)行/調(diào)試配置。我們可以使用基于此模板的配置,在虛擬或硬件設(shè)備上運(yùn)行或調(diào)試 Android 應(yīng)用和 Activity。
2. Android App 模板
Android App 模板有4個(gè)標(biāo)簽:General,Miscellaneous,Debugger,Profiling。
2.1 General 標(biāo)簽
在 General 標(biāo)簽中,我們可以指定安裝、啟動(dòng)和部署選項(xiàng)。
Module
選擇要應(yīng)用此配置的模塊。
Installation Options:Deploy
-
Default APK:為我們當(dāng)前選擇的變體構(gòu)建和部署 APK。
-
APK from app bundle:從 Android App Bundle 構(gòu)建和部署應(yīng)用。也就是說(shuō),Android Studio 會(huì)先將我們的應(yīng)用項(xiàng)目轉(zhuǎn)換為 app bundle,其中包含了應(yīng)用的所有經(jīng)過(guò)編譯的代碼和資源。然后,Android Studio 僅會(huì)從該 app bundle 生成將應(yīng)用部署到已連接的設(shè)備所需的 APK。通常,在測(cè)試想要上傳到 Google Play 的 app bundle 時(shí)應(yīng)使用此選項(xiàng),因?yàn)閺?app bundle 部署應(yīng)用會(huì)延長(zhǎng)總構(gòu)建時(shí)間。
-
Custom Artifact:在 Android Studio 中不受支持。
-
Nothing:不在設(shè)備上安裝 APK。例如,如果我們更愿意手動(dòng)安裝 APK,則無(wú)需使用 Android Studio 進(jìn)行安裝。
Installation Options:Deploy as instant app
如果我們的應(yīng)用支持免安裝體驗(yàn)(也就是說(shuō),我們?cè)趧?chuàng)建新項(xiàng)目時(shí)添加了對(duì)免安裝應(yīng)用的支持,或者我們創(chuàng)建了一項(xiàng)或多項(xiàng)支持免安裝體驗(yàn)的動(dòng)態(tài)功能),則我們可以選擇部署這些支持免安裝體驗(yàn)的模塊,方法是勾選 Deploy as instant app 旁邊的復(fù)選框。
Installation Options:Dynamic features to deploy
如果我們的應(yīng)用包含動(dòng)態(tài)功能模塊,在部署應(yīng)用時(shí),請(qǐng)選中要包含的每個(gè)動(dòng)態(tài)功能旁邊的復(fù)選框。只有在應(yīng)用包含動(dòng)態(tài)功能時(shí),才會(huì)看到此選項(xiàng)。
Installation Options:Install Flags
鍵入我們要使用的任何 adb pm install 選項(xiàng)。設(shè)置選項(xiàng)格式的方式與在命令行上相同,但不指定路徑。
Launch Options:Launch
-
Nothing:當(dāng)我們選擇 Run 或 Debug 時(shí),不啟動(dòng)任何內(nèi)容。不過(guò),如果我們的應(yīng)用已在運(yùn)行且我們選擇了 Debug ,則 Android Studio 會(huì)將調(diào)試程序連接到我們的應(yīng)用進(jìn)程。
-
Default Activity:?jiǎn)?dòng)在清單中標(biāo)記為啟動(dòng)項(xiàng)的 Activity。
-
Specified Activity:?jiǎn)?dòng)模塊中特定的應(yīng)用 Activity。選擇此選項(xiàng)后,Activity 字段將顯示在下方,我們可以在其中輸入要啟動(dòng)的 Activity 的名稱,也可以點(diǎn)擊 More 以從列表中選擇一個(gè) Activity。
-
URL:?jiǎn)?dòng)與應(yīng)用清單中的 intent 過(guò)濾條件匹配的網(wǎng)址。選擇此選項(xiàng)后,URL 字段將顯示在下方,我們可以在其中輸入網(wǎng)址。
Launch Options:Launch Flags
鍵入我們要使用的任何 adb am start 選項(xiàng)。設(shè)置選項(xiàng)格式的方式與在命令行上相同,但不指定 intent。
Before Launch
定義啟動(dòng)之前的操作。
2.2 Miscellaneous 標(biāo)簽
在 Miscellaneous 標(biāo)簽中,我們可以指定 logcat、安裝、啟動(dòng)和部署選項(xiàng)。
Logcat:Show logcat automatically
選中此選項(xiàng)后,每次使用此配置成功部署和啟動(dòng)應(yīng)用時(shí),系統(tǒng)都會(huì)打開(kāi) Logcat 窗口。
Logcat:Clear log before launch
如果我們希望 Android Studio 在啟動(dòng)應(yīng)用之前從日志文件中移除之前會(huì)話的數(shù)據(jù),請(qǐng)選中此選項(xiàng)。
Installation Options:Skip installation if APK has not changed
選中此選項(xiàng)后,如果 Android Studio 檢測(cè)到我們的 APK 未更改,將不會(huì)重新部署 APK。如果我們希望 Android Studio 即使在 APK 未更改的情況下仍強(qiáng)行安裝 APK,則取消選中此選項(xiàng)。
Installation Options:Force stop running application before launching activity
如果選中此選項(xiàng),則在 Android Studio 檢測(cè)到 APK 未更改從而無(wú)需重新安裝 APK 時(shí),它將強(qiáng)行停止應(yīng)用,以便應(yīng)用從默認(rèn)啟動(dòng)器 Activity 啟動(dòng)。如果取消選中此選項(xiàng),則 Android Studio 不會(huì)強(qiáng)行停止應(yīng)用。
Before Launch
定義啟動(dòng)之前的操作。
2.3 Debugger 標(biāo)簽
我們可以在 Debugger 標(biāo)簽中指定調(diào)試選項(xiàng)。
對(duì)于 C 和 C++ 代碼,Android Studio 會(huì)使用 LLDB 調(diào)試程序。除了普通的 Android Studio 界面,調(diào)試程序窗口還有一個(gè) LLDB 標(biāo)簽,讓我們可以在調(diào)試過(guò)程中輸入 LLDB 命令。我們可以輸入與 Android Studio 用于在調(diào)試程序界面中顯示信息的命令相同的命令,還可以執(zhí)行其他操作。對(duì)于 C 和 C++ 項(xiàng)目,我們可以在 Debugger 標(biāo)簽中添加符號(hào)目錄,以及 LLDB 啟動(dòng)與連接后命令。
Debug type
-
Java:僅調(diào)試 Java 代碼;
-
Auto:讓 Android Studio 為我們的項(xiàng)目選擇最合適的調(diào)試類型;
-
Native:調(diào)試原生 C 或 C++ 代碼;
-
Dual:在兩個(gè)單獨(dú)的調(diào)試會(huì)話中調(diào)試 Java 和原生代碼;
Symbol Directories
如果要添加符號(hào)文件來(lái)為調(diào)試程序提供在 Android Studio 外部生成的 C 或 C++ 代碼的信息,我們可以在此處添加一個(gè)或多個(gè)目錄。
LLDB Startup Commands
添加要在調(diào)試程序連接到進(jìn)程之前執(zhí)行的 LLDB 命令。
LLDB Post Attach Commands
添加要在調(diào)試程序連接到進(jìn)程之后立即執(zhí)行的 LLDB 命令。
Logging:Target channels
指定 LLDB 日志選項(xiàng)。Android Studio 會(huì)根據(jù)團(tuán)隊(duì)的經(jīng)驗(yàn)設(shè)置默認(rèn)選項(xiàng),所以速度不會(huì)太慢,但卻包含問(wèn)題排查所需的信息。Android Studio 錯(cuò)誤報(bào)告經(jīng)常需要請(qǐng)求日志。
Before Launch
定義啟動(dòng)之前的操作。
2.4 Profiling 標(biāo)簽
如果我們的設(shè)備搭載的是 Android 7.1 或更低版本,則必須勾選 Enable advanced profiling 選項(xiàng)才能啟用 Android Profiler 中的特定功能。
3. 創(chuàng)建新的配置
Run/Debug Configurations 對(duì)話框會(huì)顯示我們的運(yùn)行/調(diào)試配置和可用的默認(rèn)模板,我們可以直接根據(jù)模板或從其他配置的副本開(kāi)始定義新配置,我們還可以在 Project 窗口中右鍵點(diǎn)擊某個(gè)項(xiàng),以自動(dòng)創(chuàng)建該項(xiàng)專用的配置。
3.1 根據(jù)模板開(kāi)始配置
要根據(jù)模板定義運(yùn)行/調(diào)試配置,請(qǐng)按以下步驟操作:
-
打開(kāi) Run/Debug Configurations 對(duì)話框;
-
點(diǎn)擊 Add New Configuration 圖標(biāo) ;
-
選擇一個(gè)默認(rèn)模板;
-
在 Name 字段中輸入一個(gè)名稱;
-
根據(jù)需要修改配置;請(qǐng)務(wù)必更正在此對(duì)話框底部顯示的所有錯(cuò)誤;
-
點(diǎn)擊 OK。
3.2 使用副本開(kāi)始配置
要使用其他配置的副本開(kāi)始定義運(yùn)行/調(diào)試配置,請(qǐng)按以下步驟操作:
-
打開(kāi) Run/Debug Configurations 對(duì)話框;
-
在左側(cè)窗格中選擇現(xiàn)有的運(yùn)行/調(diào)試配置;
-
點(diǎn)擊 Copy Configuration 圖標(biāo) ;
-
在 Name 字段中輸入一個(gè)名稱;
-
根據(jù)需要修改配置;請(qǐng)務(wù)必更正在此對(duì)話框底部顯示的所有錯(cuò)誤;
-
點(diǎn)擊 OK。
3.3 為項(xiàng)目中的項(xiàng)定義配置
Android Studio 可以為 Project 窗口中顯示的某些項(xiàng)創(chuàng)建運(yùn)行/調(diào)試配置。如需為項(xiàng)目中的某個(gè)項(xiàng)創(chuàng)建運(yùn)行/調(diào)試配置,請(qǐng)按以下步驟操作:
-
在 Android 或 Project 視圖中打開(kāi)一個(gè)項(xiàng)目;
-
在 Project 窗口中,右鍵點(diǎn)擊某個(gè)可測(cè)試項(xiàng),然后選擇 Run 文件名 或 Debug 文件名。Android Studio 會(huì)創(chuàng)建一個(gè)臨時(shí)的運(yùn)行/調(diào)試配置并啟動(dòng)我們的應(yīng)用;
-
從工具欄的 Select Run/Debug Configuration 下拉列表中選擇 Save。
4. 使用自定義的配置
如果我們保存了運(yùn)行/調(diào)試配置,則可以在運(yùn)行或調(diào)試應(yīng)用之前選擇該配置。
如需使用保存的運(yùn)行/調(diào)試配置,請(qǐng)按以下步驟操作:
- 從工具欄的 Select Run/Debug Configuration 下拉列表中選擇我們自定義的配置;
- 選擇 Run > Run 或 Run > Debug 運(yùn)行程序。
5. 定義啟動(dòng)之前的操作
我們可以指定要在應(yīng)用運(yùn)行/調(diào)試配置之前執(zhí)行的任務(wù)。任務(wù)會(huì)按照其在列表中顯示的順序來(lái)執(zhí)行。
要?jiǎng)?chuàng)建任務(wù)列表,請(qǐng)按以下步驟操作:
-
在 Run/Debug Configurations 對(duì)話框底部的 Before launch 下方,點(diǎn)擊 Add 圖標(biāo) ,然后選擇一種任務(wù)類型。如果對(duì)話框打開(kāi),請(qǐng)?zhí)畛淦渲械淖侄尾Ⅻc(diǎn)擊 OK。
-
根據(jù)需要添加更多任務(wù)。
-
要對(duì)任務(wù)進(jìn)行排序,請(qǐng)選擇一個(gè)任務(wù)并點(diǎn)擊 Up 圖標(biāo) 或 Down 圖標(biāo) ,以將其在列表中上移或下移。
-
如果我們想在應(yīng)用運(yùn)行/調(diào)試配置設(shè)置前顯示這些設(shè)置,請(qǐng)選擇 Show this page。
-
如果我們希望在運(yùn)行或調(diào)試應(yīng)用時(shí)激活 Run 或 Debug 工具窗口,請(qǐng)選中 Active tool window。
可供添加的任務(wù)如下:
Run External tool
運(yùn)行 Android Studio 外部的應(yīng)用。在 External Tools 對(duì)話框中,選擇我們要運(yùn)行的一個(gè)或多個(gè)應(yīng)用,然后點(diǎn)擊 OK。
Run Another Configuration
執(zhí)行某個(gè)現(xiàn)有的運(yùn)行/調(diào)試配置。在 Choose Configuration to Execute 對(duì)話框中,選擇要執(zhí)行的配置,然后點(diǎn)擊 OK。
Make
編譯項(xiàng)目或模塊。如果運(yùn)行/調(diào)試配置指定了特定的模塊,Android Studio 會(huì)執(zhí)行 Make Module 命令;如果未指定任何模塊,則會(huì)執(zhí)行 Make Project 命令。
Make Project
編譯項(xiàng)目。Android Studio 將執(zhí)行 Make Project 命令。
Make, no error check
Android Studio 在執(zhí)行運(yùn)行/調(diào)試配置時(shí)不考慮編譯結(jié)果,除此之外,此選項(xiàng)與 Make 相同。
Run Gradle task
運(yùn)行 Gradle 任務(wù)。在打開(kāi)的對(duì)話框中,指定詳情,然后點(diǎn)擊 OK。
Gradle-aware Make
編譯項(xiàng)目并運(yùn)行 Gradle。
App Engine Gradle builder
App Engine Gradle builder 任務(wù)會(huì)同步項(xiàng)目,然后構(gòu)建模塊。
6. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了運(yùn)行配置相關(guān)的知識(shí)。本節(jié)課程的重點(diǎn)如下:
- 掌握 Android Studio 默認(rèn)運(yùn)行配置;
- 掌握 如何創(chuàng)建和使用自定義配置。