Android Studio Dolphin | 2021.3.1 (2022 年 9 月)

以下是 Android Studio Dolphin 的新功能。

Compose 的新功能

以下是 Android Studio 中 Jetpack Compose 的新功能和改善項目。

Compose 動畫協調作業

如果在可組合項預覽中描述了動畫,您現在可以使用動畫預覽一次檢查並協調所有動畫。也可以凍結特定動畫。

GIF 展示透過所有動畫使用者介面進行的檢查

Compose 多重預覽註解

您現在可以定義含有多個預覽定義的註解類別,並使用該新註解一次產生這些預覽。使用這個新的註解可同時預覽多個裝置、字型和主題,不需要重複為每個個別可組合項的定義。

多重預覽註解使用者介面

版面配置檢查器中的 Compose 重組計數

對 Compose 版面配置進行偵錯時,瞭解可組合項是否重新組合十分重要,這才能瞭解使用者介面是否正確實作。舉例來說,如果重組次數過多,應用程式可能會執行不必要的工作。另一方面,超出您預期的未重組元件可能導致意外行為。

版面配置檢查器現在可讓您查看版面配置階層中的個別可組合元件何時進行重組或略過。在您與應用程式互動時,這些資訊將即時顯示。如要開始使用,請確認應用程式使用的是 Compose 1.2.0-alpha03 或以上版本。接著,按照平常的方法部署應用程式。

版面配置檢查器中的新組合和略過計數器

開啟「Layout Inspector」視窗,並連線至應用程式程序。在「Component Tree」中,版面配置階層旁應該會顯示兩個新資料欄。第一欄顯示每個節點的組成數。第二欄顯示每個節點的略過次數。當您從或「Component Tree」「Layout Display」中選取可組合項時,也可在 「Attributes」窗格中查看類似的資訊。

如要重設計數,請按一下 「Component Tree」面板頂端附近的「Reset」。重設計數可協助您瞭解在應用程式與特定互動期間的重組或略過次數。

在版面配置檢查器中啟用組合並略過計數器

更新 Wear OS 模擬器配對助理

從 Android Studio Dolphin Canary 3 開始,Wear OS 模擬器配對助理改善了多項功能,方便您管理及連結 Wear 模擬器。您現在可以執行以下操作:

  • 裝置管理工具中查看 Wear 裝置。
  • 將多部 Wear 裝置與單一虛擬或實體手機配對。
  • 啟動後自動配對先前配對的裝置。Android Studio 現在會記住並重新配對上次配對的裝置。

如要使用這些新功能,請確認手機模擬器是 API 級別 30 以上,且已安裝 Google Play 商店。此外,請確認您的 Wear 模擬器為 API 級別 28 或以上版本。如要升級模擬裝置的最新系統映像檔,請前往「Tools」>「SDK Manager」

詳情請參閱使用 Wear OS 模擬器配對助理

更新 Wear OS 模擬器工具列

從 Android Studio Dolphin Canary 2 開始,針對 API 級別 28 或以上的 Wear 模擬器,模擬器工具列現在會顯示可模擬裝置上實體按鈕和常見動作的按鈕。新的按鈕包括:按鈕 1 和按鈕 2 (按鈕 2 僅適用於 API 級別 30 或以上)、手掌按鈕和傾斜按鈕。以下是 Wear 模擬器上的新增按鈕可執行的操作:

  • 如要將裝置設為微光模式,請按一下手掌按鈕。
  • 如要將裝置返回微光模式前的最後一個螢幕,請按一下傾斜按鈕。

詳情請參閱在模擬器中執行常用操作

具有 Wear 專用按鈕的 Wear 模擬器

全新 Wear OS 執行設定

新增執行設定,可快速執行 Wear OS 專用的介面並偵錯,例如錶面、資訊方塊和小工具。您可以在執行應用程式時,透過「Run/Debug Configurations」對話方塊建立這些新設定。

詳情請參閱 Wear OS 執行/偵錯設定

WearOS 新啟動設定

新 Logcat

更新 Logcat,讓您輕鬆剖析、查詢及追蹤記錄檔。

新增格式轉換程式

Logcat 現已設定記錄檔格式,方便您掃描實用資訊 (例如標記和訊息),以及找出不同類型的記錄檔 (例如警告和錯誤)。

Logcat 中的記錄檔新格式

建立多個 Logcat 視窗

您現在可以在 Logcat 中建立多個分頁,以便輕鬆在不同裝置或查詢之間切換。在分頁標籤上按一下滑鼠右鍵時,可讓您重新命名分頁,並且按住並拖曳即可重新排列分頁標籤。

此外,為了更輕鬆地比較兩組記錄檔,現在只要在記錄檔檢視畫面中按一下滑鼠右鍵,然後選取「Split Right」或「Split Down」。如要關閉分割,請按一下滑鼠右鍵,然後選取「Close」關閉。每個分割都可讓您設定自己的裝置連線、檢視選項和查詢。

使用分割功能建立多個 logcat 視窗

切換檢視畫面預設

Logcat 可讓您快速切換不同檢視模式:標準精簡自訂- 方法是按一下檢視模式選取器。每種檢視畫面模式都提供不同的預設設定,顯示較多或較少的資訊,例如時間戳記、標記和程序 ID (PID)。您也可以選取「Modify View」,以自訂每個預設檢視模式和自訂檢視模式。

切換不同檢視模式的螢幕截圖

在舊版 Logcat 中,您可以選擇使用字串搜尋 (支援規則運算式),或利用 Logcat UI 填入各種欄位來建立新篩選器。第一個選項讓搜尋變得更複雜,第二個選項則讓共用和設定查詢變得更加困難。現在,我們直接在主要查詢欄位中導入鍵/值搜尋,以簡化使用體驗。

新查詢語法的自動完成功能螢幕截圖

這個新查詢系統可提供查詢的精準度,不需要依賴規則運算式,也能記住記錄檔中的過去查詢,並與其他人分享這些查詢。此外,您還是可以使用 RegEx,也可以根據鍵/值排除記錄檔。以下示範如何使用新的查詢系統,但您也可以直接在查詢欄位中輸入以開始查看建議:

  • 本機應用程式專案的 PIDpackage:mine
  • 特定值
    • package:<package-ID>
    • tag:<tag>
    • level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
  • 在鍵前面加上 -排除特定值
    • -tag:<exclude-tag>
  • 在鍵後面加上 ~,即可使用規則運算式搭配特定鍵操作:
    • tag~:<regular-expression-tag>
    • 合併排除標記:-tag~:<exclude-regular-expression-tag>

您也可以點選查詢欄位中的 查詢記錄選取器 並從下拉式選單中選取查詢,藉此查看查詢記錄。如要將查詢設為偏好,以便在所有 Studio 專案清單頂端顯示,請按一下查詢欄位結尾的 偏好查詢

加入收藏的螢幕截圖查詢記錄

追蹤應用程式當機/重新啟動時的記錄

新的 Logcat 可讓您更輕鬆地追蹤應用程式當機和重新啟動時的應用程式記錄,以免錯過這些事件的重要記錄。如果 Logcat 偵測到應用程式程序停止並重新啟動,輸出結果中就會顯示訊息 (例如 PROCESS ENDEDPROCESS STARTED),如下所示:

logcat 中程序重新啟動的螢幕截圖

此外,重新啟動 Logcat 會保留工作階段設定,例如分頁分割、篩選器和檢視畫面選項,方便您輕鬆繼續進行工作階段。

Gradle 管理的裝置

為了讓使用 Android 虛擬裝置進行自動化檢測設備測試時,為提高一致性、效能和穩定性,我們推出了 Gradle 管理裝置。這項功能適用於 API 級別 27 及以上級別,可讓您在專案的 Gradle 檔案中設定虛擬測試裝置。建構系統在執行自動化測試時,會使用這些設定來完全管理這些裝置 (即建立、部署及拆卸這些裝置)。

這項功能不僅可讓 Gradle 查看正在進行的測試,也能查看裝置的生命週期,進而以下列方式改善測試體驗的品質:

  • 處理裝置相關問題,確保測試能執行
  • 利用模擬器快照改善裝置啟動時間和記憶體用量,並在測試之間將裝置還原至清空狀態
  • 快取測試結果及重新執行可能提供不同結果的測試
  • 提供一致的環境,以便在本機和遠端測試執行時執行測試

此外,Gradle 管理的裝置會採用名為「自動測試裝置」(ATD) 的新型模擬器裝置,這種裝置可在執行檢測設備測試時最佳化。結合測試資料分割功能,您可以將測試套件分割至多個 ATD 執行個體,以縮短整體測試執行時間。如要進一步瞭解 Gradle 管理裝置及其相關功能,請參閱使用 Gradle 管理裝置擴充測試

R8 支援根據 DEX 指令偏移使用對應檔案

最佳化行資訊時,R8 現在可根據指示偏移,在共用偵錯資訊物件中將資訊編碼。這樣可以大幅減少行資訊的開銷。實際上,方法中的行不再連續,但可能會依照指令大小形成的間隔而跳轉。請注意,部分工具不會考慮此共用編碼。

此外,果該方法沒有行編號資訊,從 O (API 級別 26) 開始,Android VM 支援在堆疊追蹤中列印指令偏移。使用 minSdk 26 以上版本進行編譯時,且沒有任何來源檔案資訊,R8 會完全移除行數資訊。

無狀態 lambda 已不再脫糖為單例模式

脫糖時,無狀態 lambda 不會再分配為單例模式。以單例模式呈現,代表由於新增欄位和類別初始化器而增加程式碼大小負擔,以及因靜態類別初始化而產生的啟動負擔。無狀態 lambda 現已在使用站點配置,與有狀態 lambda (含擷取的 lambda) 相同。

R8 可避免 Android 執行階段的驗證速度變慢

為避免 Android 執行階段 (Dalvik 和 ART) 的效能問題,R8 (非 D8) 現已推出程式庫虛設常式,並概述程式庫類別和執行階段中可能不存在的方法的程式庫方法。這樣可以省去許多驗證問題,並改善執行階段效能。系統一律會啟用這項功能。

支援使用 Java 8+ API 脫糖的 JDK-11 API

使用 coreLibraryDesugaring 依附元件時,系統現在支援以 JDK-11 為基礎的實作程式庫。詳情請參閱desugar_jdk_libs 變更記錄

修補程式版本

以下是 Android Studio Dolphin 中的修補程式版本清單。

Android Studio Dolphin | 2021.3.1 修補程式 1 (2022 年 10 月)

隨著修補程式 1 的推出,Android Studio Dolphin 現在支援 Kotlin 外掛程式 1.7.20。這項次要更新同時修正了下列錯誤:

已修正問題
Android Gradle 外掛程式
透過 Gradle 執行 Android 檢測設備測試時,無法正確套用脫糖程序
AGP 7.3.0 中斷 Gradle 平台專案的 Gradle 同步處理
Dexer (D8)
新增公用 API,以便在合併 DEX 時解決衝突 (適用於 Bazel,用以允許重複的類別)
匯入/同步處理
從 Chipmunk 修補程式 2 (2021.2.1) 升級後,Gradle 專案匯入失敗
資源
AarResourceRepositoryCache.createCachingData 中的 NPE (AS Dolphin+)
縮減器 (R8)
以類型替換欄位時,系統不會複製 Kotlin 中繼資料
非預期的不精確類型轉換:TOP (所有)
Gradle 7.3.0 造成 APK 建構錯誤 com.android.tools.r8.CompilationFailedException
在相容模式中去除無效的預設建構函式。
與 JetBrains Markdown 發生衝突
支援 ThreadLocal.withInitial(java.util.function.Supplier)
針對包含已毀損建構函式的類別,AGP 7.3 會產生 dex
系統在非預期的情況下嘗試判斷非 CF 程式碼是否需要脫糖
ktor VerifyError
系統擲回訊息,指處理 okio-jvm 3.2.0 時在編譯期間遇到未定義的值
使用者間接執行個體的類別內嵌物件發生編譯失敗
R8 3.3.75 的 java.lang.IllegalAccessError