以下是 Android Studio Iguana 的新功能。
修補程式版本
以下是 Android Studio Iguana 和 Android Gradle 外掛程式 8.3 的修補程式版本清單。
Android Studio Iguana | 2023.2.1 修補程式 2 和 AGP 8.3.2 (2024 年 4 月)
這項次要更新修正了這些錯誤。
Android Studio Iguana | 2023.2.1 修補程式 1 和 AGP 8.3.1 (2024 年 3 月)
這項次要更新修正了這些錯誤。
IntelliJ IDEA 2023.2 平台更新
Android Studio Iguana 包含 IntelliJ IDEA 2023.2 更新,可提升 Studio IDE 使用體驗。如要進一步瞭解異動內容,請參閱 IntelliJ IDEA 2023.2 版本資訊。
在 App Quality Insights 中整合版本控制系統
App Quality Insights 現在可讓您在發生當機時,從 Crashlytics 堆疊追蹤導覽至相關程式碼。AGP 會將 Git 提交雜湊資料附加至當機報告,協助 Android Studio 前往您的程式碼,並顯示該程式碼在發生問題的版本中的狀態。在應用程式品質深入分析中查看當機報告時,您可以選擇前往目前 Git 檢出的程式碼行,或是查看目前檢出的程式碼與產生當機的程式碼庫版本之間的差異。
如要將版本控制系統與 App Quality Insights 整合,您必須符合下列最低規定:
- Android Studio Iguana 的最新 Canary 版本
- Android Gradle 外掛程式 8.3 的最新 Alpha 版
- Crashlytics SDK 18.3.7 版 (或 Firebase Android 物料清單 32.0.0 版)
如要針對可偵錯的建構類型使用版本控制整合功能,請在模組層級建構檔案中啟用 vcsInfo
標記。對於發布 (非偵錯) 版本,系統預設會啟用標記。
Kotlin
android { buildTypes { getByName("debug") { vcsInfo { include = true } } } }
Groovy
android { buildTypes { debug { vcsInfo { include true } } } }
如今,當您建構應用程式並發布至 Google Play 時,當機報告會包含 IDE 從堆疊追蹤連結至先前應用程式版本所需的資料。
在「App Quality Insights」中查看 Crashlytics 異常終止變化版本
為協助您分析當機的根本原因,您現在可以使用 App Quality Insights 依據問題變化版本或共用類似堆疊追蹤記錄的事件群組,查看事件。如要查看當機報告的各個變化版本中的事件,請從下拉式選單中選取變化版本。如要匯總所有變數的資訊,請選取「全部」。
Compose UI 檢查
為了協助開發人員在 Jetpack Compose 中建構更具適應性和無障礙的 UI,Android Studio Iguana Canary 5 在 Compose 預覽中推出了新的 UI 檢查模式。這項功能的運作方式與視覺 linting 和檢視畫面的無障礙檢查整合類似。啟用 Compose UI 檢查模式後,Android Studio 會自動檢查 Compose UI,並檢查不同螢幕大小的自動調整和無障礙問題,例如在大型螢幕上拉伸的文字,或低色彩對比度。這個模式會在不同預覽設定中找出問題,並在「問題」面板中列出這些問題。
歡迎立即試用這項功能,方法是按一下 Compose 預覽中的 UI 檢查按鈕 ,然後提供意見回饋:

UI 檢查模式的已知問題:
- 問題面板中選取的問題可能會失去焦點
- 「抑制規則」無法運作

Compose 預覽的漸進式算繪
Android Studio Iguana Canary 3 在 Compose 預覽中推出漸進式算繪功能。為了持續提升預覽畫面的效能,我們現在會針對所有不在視窗中的預覽畫面,刻意降低其算繪品質,以節省使用的記憶體。
這項功能的開發目標,是為了進一步改善預覽畫面的可用性,讓您在檔案中同時處理更多預覽畫面。歡迎立即試用並提供意見。

基準設定檔模組精靈
自 Android Studio Iguana 起,您可以使用新模組精靈中的基準設定檔產生器範本 (依序點選「File」>「New」>「New Module」),為應用程式產生基準設定檔。
這個範本可設定專案,讓專案支援基準設定檔。這項工具會使用新的基準設定檔 Gradle 外掛程式,以單一 Gradle 工作自動執行專案設定程序。
範本也會建立執行設定,讓您只要按一下「Select Run/Debug Configuration」下拉式清單,即可產生基準設定檔。
使用 Espresso Device API 針對設定變更進行測試
當裝置進行常見的設定變更 (例如旋轉和螢幕展開) 時,請使用 Espresso Device API 測試應用程式。Espresso Device API 可讓您在虛擬裝置上模擬這些設定變更,並同步執行測試,因此每次只會發生一個 UI 動作或斷言,測試結果也會更可靠。進一步瞭解如何使用 Espresso 編寫 UI 測試。
如要使用 Espresso Device API,您需要:
- Android Studio Iguana 以上版本
- Android Gradle 外掛程式 8.3 以上版本
- Android Emulator 33.1.10 以上版本
- 搭載 API 級別 24 以上版本的 Android 虛擬裝置
設定 Espresso Device API 專案
如要設定專案以支援 Espresso Device API,請按照下列步驟操作:
如要讓測試將指令傳遞至測試裝置,請在
androidTest
來源集中的資訊清單檔案中新增INTERNET
和ACCESS_NETWORK_STATE
權限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
在
gradle.properties
檔案中啟用enableEmulatorControl
實驗旗標:android.experimental.androidTest.enableEmulatorControl=true
在模組層級的建構指令碼中啟用
emulatorControl
選項:Kotlin
testOptions { emulatorControl { enable = true } }
Groovy
testOptions { emulatorControl { enable = true } }
在模組層級的建構指令碼中,將 Espresso Device 程式庫匯入專案:
Kotlin
dependencies { androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1") }
Groovy
dependencies { androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1' }
針對常見的設定變更進行測試
Espresso Device API 提供多種螢幕方向和折疊式狀態,可用於模擬裝置設定變更。
針對螢幕旋轉功能進行測試
以下範例說明如何測試裝置螢幕旋轉時,應用程式會發生什麼情況:
首先,為確保一致的啟動狀態,請將裝置設為直向模式:
import androidx.test.espresso.device.action.ScreenOrientation import androidx.test.espresso.device.rules.ScreenOrientationRule ... @get:Rule val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
建立測試,在測試執行期間將裝置設為橫向:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) ... }
螢幕旋轉後,請確認 UI 是否如預期調整至新版面配置:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist() }
針對螢幕展開功能進行測試
以下範例說明如何測試應用程式在可折疊裝置上展開螢幕時的情況:
首先,請呼叫
onDevice().setClosedMode()
,以便在裝置處於折疊狀態時進行測試。請確認應用程式的版面配置可配合精簡螢幕寬度調整:@Test fun myUnfoldedTest() { onDevice().setClosedMode() composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed() composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist() ... }
如要轉換至完全展開狀態,請呼叫
onDevice().setFlatMode()
。檢查應用程式的版面配置是否可配合擴大的大小類別調整:@Test fun myUnfoldedTest() { onDevice().setClosedMode() ... onDevice().setFlatMode() composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist() }
指定測試所需的裝置
如果您在非折疊式裝置上執行折疊動作的測試,通常會失敗。如要只執行與執行中的裝置相關的測試,請使用 @RequiresDeviceMode
註解。測試執行程式會自動略過在裝置上執行測試,如果該裝置不支援所測試的設定。您可以將裝置需求規則新增至每個測試或整個測試類別。
舉例來說,如要指定測試應只在支援展開至平面設定的裝置上執行,請在測試中加入以下 @RequiresDeviceMode
程式碼:
@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
...
}