Android Studio 預先發布版的新功能

本頁面列出 Android Studio 預先發布版中導入的新功能。預先發布版可讓您搶先體驗 Android Studio 中的最新功能和改善項目。您可以在這裡下載這些預先發布版。如果您在使用 Android Studio 預先發布版時遇到任何問題,請與我們聯絡。錯誤報告有助於改進 Android Studio。

如需 Android Studio 預先發布版的最新消息,包括各預覽版本的重要修正內容清單,請參閱 Android Studio 網誌中的版本更新

目前的 Android Studio 版本

下表列出目前 Android Studio 的版本及其個別版本。

版本 頻道
Android Studio Hedgehog | 2023.1.1 穩定
Android Gradle 外掛程式 8.2.2 穩定
Android Studio Iguana | 2023.2.1 Beta 版
Android Studio Jellyfish | 2023.3.1 Canary 版

與 Android Gradle 外掛程式預先發布版的相容性

每個 Android Studio 預先發布版都會與對應的 Android Gradle 外掛程式 (AGP) 版本一起發布。Studio 的預覽版本應能與任何相容的 AGP 穩定版搭配使用。不過,如果您使用的是 AGP 預先發布版,則必須使用對應的 Studio 預先發布版 (例如搭配 AGP 7.2.0-alpha07 使用 Android Studio Chipmunk Canary 7)。嘗試使用不同的版本 (例如 Android Studio Chipmunk Beta 1 與 AGP 7.2.0-alpha07) 會導致同步失敗,並提示您更新至對應的 AGP 版本。

如需 Android Gradle 外掛程式 API 淘汰與移除的詳細記錄,請參閱「Android Gradle 外掛程式 API 更新」。

Android Studio Iguana | 2023.2.1

以下是 Android Studio Iguana 的新功能。如要查看這個版本的 Android Studio 修正了哪些功能,請參閱「已關閉的問題」。

Studio Bot 隆重登場

Studio Bot 是 Android 開發程式設計的好幫手。這是 Android Studio 中的 AI 技術輔助對話體驗,可協助您回答 Android 開發問題,提高工作效率。詳情請參閱「認識 Studio Bot」。

以安全模式啟動 Android Studio

Android Studio Hedgehog 推出了在安全模式中啟動 Android Studio 的功能。如果您遇到某些功能無法運作或整個 IDE 無法啟動 (例如自訂設定、環境變數或外掛程式與 Android Studio 不相容) 的情況,就很適合使用這個模式。

使用安全模式會暫時將 IDE 傳回到一組可能允許啟動的預設設定,方便您從該處進行疑難排解,以便找出問題並還原功能。安全模式會採取下列動作,嘗試開啟功能受限的 Android Studio:

  • 停用第三方外掛程式
  • 將隨附的 Kotlin 外掛程式還原至 Studio 最初包含的版本
  • 暫時重設設定,例如 studio.vmoptions 檔案中的設定
  • 驗證可能阻礙啟動的環境變數,例如 JRE_HOMETMP
  • 視需要將 JRE 還原為相容版本

如要在安全模式中啟動 Android Studio,請按照下列步驟操作:

  1. 找出安全模式指令碼。
    • 在 Windows 中,前往 AndroidStudio/bin 並找出 studio_safe.bat 指令碼。
    • 若是 macOS,請前往 Android Studio/Contents/bin 並尋找 studio_safe.sh 指令碼。
    • 在 Linux 中,前往 android-studio/bin 並找出 studio_safe.sh 指令碼。
  2. 執行指令碼:開啟指令列並輸入 studio_safe.bat (macOS 或 Linux 為 studio_safe.sh),然後按下 Enter 鍵。

應用程式品質深入分析中的版本管控系統整合功能

應用程式品質深入分析現在可讓您從 Crashlytics 堆疊追蹤前往相關程式碼,也就是當機發生的時間點。AGP 會將 Git 修訂版本雜湊資料附加至當機報告,協助 Android Studio 前往您的程式碼,並顯示問題發生時的版本。在「App Quality Insights」中查看當機報告時,您可以選擇前往目前 Git 結帳頁面中的該行程式碼,或是查看目前結帳與產生當機的程式碼集版本之間的差異。

如要將版本管控系統與應用程式品質深入分析整合,必須符合下列最低需求:

如要使用版本管控整合,請在 gradle.properties 檔案中啟用 android.enableVcsInfo 標記:

android.enableVcsInfo=true

現在,當您建構應用程式並發布至 Google Play 時,當機報告中會包含 IDE 從堆疊追蹤連結至舊版應用程式所需的資料。

Compose UI 檢查

為協助開發人員在 Jetpack Compose 中建構更靈活且無障礙的 UI,Android Studio Iguana Canary 5 在 Compose 預覽中推出了全新的 UI 檢查模式。這項功能的運作方式與檢視畫面的視覺程式碼檢查無障礙功能檢查整合類似。啟用 Android Studio 的 Compose UI 檢查模式,即可自動稽核 Compose UI,並檢查在不同螢幕大小下,找出自動調整和無障礙功能的問題,例如大螢幕延展的文字,或色彩對比度過低。這個模式會醒目顯示在不同預覽設定中發現的問題,並在問題面板中列出問題。

按一下 Compose 預覽上的 UI Check 圖示,然後傳送意見回饋,即可立即試用這項功能:

UI 檢查模式的已知問題:

  • 您在問題面板中選取的問題可能會失去焦點
  • 「禁止規則」無法運作

Compose 預覽的漸進式轉譯

Android Studio Iguana Canary 3 推出了 Compose 預先發布版中的漸進式轉譯功能。一直以來,我們不斷努力提高預覽效能,但現在對於檢視畫面不支援的預覽,我們會刻意降低轉譯品質,以節省記憶體。

這項功能的開發宗旨,是能夠立即在測試檔案中同時處理更多預覽畫面,並提交意見回饋,進一步提升預覽的可用性。

使用 Espresso Device API 測試設定變更

當裝置遇到常見的設定變更 (例如旋轉和螢幕展開) 時,請使用 Espresso Device API 測試應用程式。Espresso Device API 可讓您在虛擬裝置上模擬這些設定變更,並同步執行測試,因此一次只會發生一項 UI 動作或斷言,測試結果也更加可靠。如果您是第一次使用 Espresso 編寫 UI 測試,請參閱其說明文件

如要使用 Espresso Device API,您需要下列項目:

  • 最新版 Android Studio Iguana
  • 最新的 Android Gradle 外掛程式 8.3 Alpha 版
  • Android Emulator 33.1.10 以上版本
  • 搭載 API 級別 24 以上版本的 Android 虛擬裝置

設定 Espresso Device API 專案

如要設定專案,讓專案支援 Espresso Device API,請按照下列步驟操作:

  • 如要讓測試裝置執行測試傳遞指令,請在 androidTest 來源集的資訊清單檔案中新增 INTERNETACCESS_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:1.0.0-alpha07")
      }
      

    Groovy

      dependencies {
        androidTestImplementation 'androidx.test.espresso:espresso-device:1.0.0-alpha07'
      }
      

針對常見的設定變更進行測試

Espresso Device API 提供多種螢幕方向和折疊狀態,方便您模擬裝置設定變更。

針對螢幕旋轉進行測試

以下範例說明如何測試裝置螢幕旋轉時應用程式會發生什麼情況:

  1. 首先,為了讓啟動狀態保持一致,請將裝置設為直向模式:

      import androidx.test.espresso.device.action.ScreenOrientation
      import androidx.test.espresso.device.rules.ScreenOrientationRule
      ...
      @get:Rule
      val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
      
  2. 建立測試,在測試執行期間將裝置設為橫向:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        ...
      }
      
  3. 畫面旋轉後,請檢查 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()
      }
      
測試螢幕展開時

以下範例說明如何測試應用程式在折疊式裝置和展開螢幕的情況下,應用程式會發生什麼情況:

  1. 首先,請呼叫 onDevice().setClosedMode(),測試處於折疊狀態的裝置。請確保應用程式的版面配置可配合螢幕大小調整為適當的寬度。

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
        composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
        ...
      }
      
  2. 如要轉換為完全展開的狀態,請呼叫 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() {
  ...
}

基準設定檔模組精靈

從 Android Studio Iguana 開始,您可以使用新模組精靈中的基準設定檔產生器範本 (「File」>「New」>「New Module」),為應用程式產生基準設定檔

這個範本會設定您的專案,以便支援基準設定檔。它使用新的基準設定檔 Gradle 外掛程式,可自動執行透過一項 Gradle 工作以指定方式設定專案的程序。

這個範本也會建立執行設定,讓您在「Select Run/Debug Configuration」下拉式清單中按一下就能產生基準設定檔。

支援 Gradle 版本目錄

Android Studio Giraffe 可支援 TOML 型 Gradle 版本目錄,這項功能可讓您集中管理依附元件,並跨模組或專案共用依附元件。Android Studio 現在提供編輯器建議,並與「Project Structure」對話方塊整合,讓您更輕鬆地設定版本目錄。如要瞭解如何更新至 Gradle 版本目錄,請參閱「將建構遷移至版本目錄」。

完成程式碼與瀏覽

當您在使用 TOML 檔案格式編輯版本目錄,或是將版本目錄中的依附元件新增至建構檔案時,Android Studio 會提供程式碼完成功能。如要使用程式碼完成功能,請按下 Ctrl+空格鍵 (在 macOS 為 Command + 空格鍵)。此外,您可以按下 Ctrl+b 鍵 (在 macOS 上為 Command+b 鍵),快速從應用程式 build.gradle 檔案中的依附元件參考資料快速前往該參考資料。

新增依附元件時完成程式碼

與「Project Structure」對話方塊整合

如果專案使用 TOML 檔案格式所定義的版本目錄,您可以在 Android Studio 中透過「Project Structure」對話方塊的「Variables」檢視畫面 (依序點選「File」>「Project Structure」>「Variables」) 編輯您在該處定義的變數。每個版本目錄都會有一個下拉式選單,列出該目錄中的變數。如要編輯變數,請按一下變數的值並覆寫。儲存這些變更時,TOML 檔案也會隨之更新。

「Project Structure」對話方塊中版本目錄中的變數

您也可以在「Project Structure」對話方塊的「Dependencies」檢視畫面中 (「File」>「Project Structure」>「Dependencies」) 更新依附元件。如要使用「Project Structure」對話方塊更新版本,請前往要編輯的模組和依附元件,然後更新「Requested Version」欄位。儲存這些變更時,TOML 檔案也會隨之更新。請注意,如果是以變數定義依附元件版本,請直接以這種方式更新版本,將變數替換成硬式編碼值。另請注意,無論您是否使用「Project Structure」對話方塊移除依附元件,都不會從版本目錄中移除依附元件。

「Project Structure」對話方塊中版本目錄中的依附元件

已知問題和限制

以下是 Android Studio 對 Gradle 版本目錄支援的已知問題或限制。

在 Kotlin 指令碼檔案中醒目顯示外掛程式別名宣告時發生錯誤

新增表單 alias(libs.plugins.example) 的外掛程式宣告時,編輯器會在 libs 部分下方加上紅色底線。這是 Gradle 8.0 以下版本的已知問題,將於日後的 Gradle 版本中解決。

Android Studio 僅支援 TOML 格式的版本目錄

目前 Android Studio 程式碼完成、導覽和專案結構對話方塊僅支援以 TOML 檔案格式定義的版本目錄。不過,您仍可直接在 settings.gradle 檔案中新增版本目錄,並在專案中使用其依附元件。

使用 Kotlin 指令碼編寫的建構檔案目前不支援使用 Control 鍵 + 點擊 (在 macOS 上為 Command 鍵 + 點擊),前往版本目錄中的依附元件定義。

Firebase Assistant 會直接在建構指令碼中新增依附元件

Firebase Assistant 會直接將依附元件直接加入建構指令碼,而不是透過版本目錄。

不支援「查看使用情形」功能

無論建構檔案位於 KTS 或 Groovy,系統目前不支援在其他建構檔案中尋找版本目錄變數的使用情形。也就是說,在版本目錄中的變數定義中按下 Control 鍵 + 點選 (在 macOS 上按 Command 鍵 + 滑鼠按鈕),不會引導使用該變數的建構檔案。

「Project Structure」對話方塊未顯示複合式建構的目錄

如果 Android Studio 中的「Project Structure」對話方塊位於根 gradle 資料夾中,則會顯示多個目錄檔案,但不會顯示複合式建構的目錄。舉例來說,如果您有兩個目錄檔案,一個用於應用程式,另一個用於複合式建構,則「Project Structure」對話方塊只會顯示應用程式目錄檔案。您可以使用複合式版本,但必須直接編輯其 TOML 檔案。

Android Studio compileSdk 版本支援

如果專案使用的 compileSdk 不受目前的 Android Studio 版本支援,Android Studio 會顯示警告。如果適用,也會建議改用支援專案使用的 compileSdk 的 Android Studio 版本。請注意,升級 Android Studio 可能也需要升級 AGP。如果目前的 AGP 版本不支援專案使用的 compileSdk,AGP 也會在「Build」工具視窗中顯示警告。

其他 SDK 深入分析:政策問題

Android Studio 會在 build.gradle.ktsbuild.gradle 檔案中顯示 Lint 警告,而對於在 Google Play SDK 索引中違反 Play 政策的公開 SDK,也會在「Project Structure」對話方塊中顯示 Lint。您應更新違反 Play 政策的所有依附元件,因為這類違規事項可能會導致您日後無法發布至 Google Play 管理中心。違反政策警告會補充 Android Studio 顯示的過時版本警告

Android Studio Jellyfish | 2023.3.1

以下是 Android Studio Jellyfish 的新功能。如要查看這個版本的 Android Studio 修正了哪些功能,請參閱「已關閉的問題」。

透過 Android Studio 中的「裝置串流」功能存取實體裝置

Android Studio 的裝置串流功能可讓您安全地連線至託管於 Google 安全資料中心的遠端實體 Android 裝置。如要針對實體裝置 (包括 Google Pixel 8 Pro、Pixel Fold、特定 Samsung 裝置等) 測試應用程式,採用 Firebase 技術,是最簡單快速的方法。

動畫:在 Android Studio 中使用 Device Streaming。

連線至裝置後,您無須離開 Android Studio,即可部署應用程式、查看螢幕、與裝置互動 (包括旋轉或展開裝置),以及透過 SSL 直接連線使用裝置進行的任何任何其他操作。你使用完裝置後,Google 會抹除所有資料並將裝置恢復原廠設定,再將裝置提供給其他開發人員。

在目前的公開 Alpha 版中,您可以免費將裝置串流用於 Spark 或 Blaze 方案的 Firebase 專案。如要開始使用,請在 Android Studio 中登入開發人員帳戶,並選取 Firebase 專案。如果您還沒有 Firebase 專案,可以輕鬆建立專案。詳情請參閱 Android Studio 中的裝置串流

新版登入流程

使用開發人員帳戶登入 Android Studio 時,您將享有 Google 開發人員服務的好處,例如在 App Quality Insights 中查看 Firebase Crashlytics 和 Android Vitals 報告、透過 Android Studio 中的裝置串流存取真實的遠端裝置,以及直接從 IDE 使用 Studio Bot 編寫品質較高的程式碼。

Android Studio Jellyfish 可協助您輕鬆新增及管理帳戶,並為 IDE 提供每項功能所需的權限。如要開始使用,請執行下列其中一項操作:

  • 前往上述的其中一項功能 然後按照提示登入,並提供必要權限
  • 如果您已經登入,可以依序前往「Settings/Preferences」>「Tools」>「Google Accounts」管理帳戶和權限。

Compose UI 檢查推出新的色盲檢查功能

Compose UI 檢查提供新的色盲模擬和檢查功能,讓您為所有使用者打造無障礙的體驗。只要在 Compose 預覽中輸入 UI 檢查模式,就能以不同類型的色彩視覺障礙方式查看 Compose UI,確保設計清晰且可供使用。

Compose UI 檢查 Colorblind 範例

使用 Gemini API 範本建構生成式 AI 應用程式

您現在可以透過 Android Studio 建構使用 Google AI SDK 實作生成式 AI 的應用程式。Android Studio 中的 Gemini API 範本可讓您在應用程式中整合 AI 技術輔助功能 (例如需要文字產生和圖片辨識的功能),讓使用者用得開心。

如要瞭解如何開始使用,請參閱「在 Android Studio 中建構第一個生成式 AI 應用程式」。

Android Gradle 外掛程式行為變更

從 Android Gradle 外掛程式 8.4.0-alpha04 開始,如果 Android 程式庫專案經過壓縮,系統會發布縮減程式類別,以便在專案間進行發布。這表示如果應用程式依附於 Android 程式庫子專案的縮減版本,APK 就會包含縮減的 Android 程式庫類別。為防 APK 中缺少類別,您可能需要調整程式庫保留規則

在建構及發布 AAR 的情況下,AAR 將包含程式庫依附的本機 jar 檔案,這表示程式碼縮減器無法在這些 AR 上執行。

如要還原為先前的行為,請在 gradle.properties 中設定 android.disableMinifyLocalDependenciesForLibraries回報錯誤。日後的 AGP 版本會移除這個標記。

使用裝置鏡像功能重新導向音訊

從 Android Studio Jellyfish Canary 5 開始,您可以將音訊從已連線的實體裝置重新導向至電腦喇叭或耳機。使用音訊重新導向功能時,請將耳機與電腦保持連線,並同時聆聽電腦和連線的手機,無需手動重新連線某部裝置。如要啟用音訊重新導向,請依序前往「Android Studio」>「Settings」>「Tools」>「Device Mirroring」,然後選取「Redirect audio from local devices」。請注意,無論設定為何,對於搭載 Android 12 以上版本的 Firebase Test Lab 裝置,系統一律會重新導向音訊。