Android Studio Arctic Fox | 2020.3.1 (2021 年 7 月)

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Android Studio Arctic Fox 是主要版本,內含多種新功能及改善項目。

新的版本編號方式

新的 Android Studio 版本編號方式

我們變更了 Android Studio 的版本編號方式,讓版本號碼更貼近 IntelliJ IDEA,即 Android Studio 採用的 IDE。

若使用原先的編號方式,這個 Android Studio 版本應為「4.3」或「4.3.0.1」版。改用新版編號方式後,則變成「Android Studio - Arctic Fox | 2020.3.1」或是「2020.3.1」版。

Intellij 版本 舊名稱 舊方式:數字 新方式:年份 新版本名稱
2020.3 4.3 4.3.0 2020.3.1 Arctic Fox | 2020.3.1

我們日後會以下列格式決定 Android Studio 版本號碼:

<Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>

  • 前兩組數字代表特定 Android Studio 版本所採用的 IntellIj 平台版本。以這個 Android Studio 版本而言,其所採用的 IntellIj 平台版本為「2020.3」版。
  • 第三組數字代表 Studio 主要版本,並會從「1」開始,每推出一個主要版本就會加 1。
  • 第四組數字代表 Studio 次要/修補版本,並會從「1」開始,每推出一個次要版本就會加 1。
  • 我們還會以 A 到 Z 的順序,用英文名稱開頭為該字母的動物,為每個主要版本命名。這個版本的名稱為「Arctic Fox」

新的 Android Gradle 外掛程式版本編號方式

我們變更了 Android Gradle 外掛程式 (AGP) 的版本編號方式,讓版本號碼與基礎 Gradle 建構工具更為一致。因此,「AGP 7.0」是繼「AGP 4.2」後的下一個版本。

詳情請參閱 AGP 版本資訊中的「版本編號方式變更」一節。

Android Gradle 外掛程式 7.0.0 版

最新版本的 Android Gradle 外掛程式包含許多更新內容。詳情請參閱完整的 Android Gradle 外掛程式版本資訊

單元測試會使用 Gradle 測試執行器

為提高測試執行作業的整體一致性,Android Studio 現在預設會使用 Gradle 執行所有單元測試。在許多情況下,這項異動不會影響 IDE 中的測試工作流程。

舉例來說,當您在內容選單 (對測試類別按一下滑鼠右鍵就會顯示) 上按一下「Run」指令,或點選相應的空白邊動作 時,Android Studio 預設會使用 Gradle 執行設定來執行單元測試。

用於執行測試的內容選單

不過,Android Studio 無法再辨識現有的 Android JUnit 執行設定,因此請將您可能會儲存為專案檔案的 Android JUnit 執行設定遷移至 Gradle 執行設定。

如要建立 Gradle 測試設定,請按照「建立新的執行/偵錯設定」中的操作說明選取 Gradle 範本。建立新設定後,這個設定就會出現在「Gradle」部分的「Edit Configurations」對話方塊中:

在 Android Studio 中編輯測試設定

如要檢查 Android Studio 無法再辨識的 Android JUnit 設定,您可以採用下列其中一種做法:

  • 在文字編輯器中開啟手動儲存的設定。這些檔案的位置是由使用者指定,但檔案通常會顯示在<my-app>/.idea/runConfigurations/中。
  • 找出<my-app>/.idea/workspace.xml中的臨時設定,並在<component name="RunManager" ...>節點底下查看。例如:

    <component name="RunManager" selected="Gradle.PlantTest">
    …
    <configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true">
          <module name="Sunflower.app" />
          <useClassPathOnly />
          <extension name="coverage">
            <pattern>
              <option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" />
              <option name="ENABLED" value="true" />
            </pattern>
          </extension>
          <option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" />
          <option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" />
          <option name="METHOD_NAME" value="" />
          <option name="TEST_OBJECT" value="class" />
          <option name="PARAMETERS" value="" />
          <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
          <method v="2">
            <option name="Android.Gradle.BeforeRunTask" enabled="true" />
          </method>
        </configuration>
    

改善 AGP 升級小幫手

Android Gradle 外掛程式升級小幫手現在有一個會持續顯示的工具視窗,當中列出要完成的各個步驟。此外,這個工具視窗的右側還會顯示其他資訊。您也可以視需要選擇升級至其他 AGP 版本。按一下「Refresh」按鈕即可更新相應的更新步驟。

升級小幫手中持續顯示的新工具視窗

重構非遞移 R 類別

您可以將非遞移 R 類別與 Android Gradle 外掛程式搭配使用,以便加速建構包含多個模組的應用程式版本。這可確保每個模組的 R 類別只包含其本身資源的參照,而不必提取其依附元件的參照,避免資源重複的情形,進而建構出較新的版本,同時還可避免編譯並享有對應好處。

如要使用這項功能,請依序前往「Refactor」>「Migrate to Non-Transitive R Classes」

新的背景工作檢查器

您可以使用新的背景工作檢查器,以視覺化方式呈現、監控和偵錯應用程式的背景工作站。首先,請將應用程式部署至執行 WorkManager 程式庫 2.5.0 以上版本的裝置,然後在選單列中依序選取「View」>「Tool Windows」>「App Inspection」

背景工作檢查器中正在執行的工作站

您可以按一下工作站來查看詳細資訊。例如,您可以查看工作站的說明、執行方式、工作站鏈的詳細資料,以及執行結果。

「Worker Details」分頁

您也可以在表格中選取工作站,並在工具列按一下「Show Graph View」圖示 ,以視覺化方式呈現工作站鏈。接著,您可以選取工作站鏈中的任一工作站來查看詳細資料,或是停止目前已排入佇列或正在執行的工作站。如要返回表格,請按一下「Show List View」圖示

背景工作檢查器工作鏈

如要調查執行失敗的工作站所造成的問題,可以停止目前正在執行或已排入佇列的工作站,方法是在表格中選取該工作站,然後在工具列中按一下「Cancel Selected Worker」圖示 。您也可以使用「All tags」下拉式選單,根據指派的標記篩選表格中的工作站。

更新資料庫檢查器

資料庫檢查器現已移至新的「App Inspection」工具視窗中,而且這個工具視窗還提供新的背景工作檢查器。如要開啟「App Inspection」工具視窗,可以使用工具視窗列,或是從選單列中依序選取「View」>「Tool Windows」>「App Inspection」

從資料庫檢查器匯出資料

在 Arctic Fox 中,您可以透過資料庫檢查器輕鬆匯出資料庫、資料表和查詢結果,以便儲存、分享或在本機重新建立。在 Android Studio 中開啟應用程式專案,並在資料庫檢查工具中查看這項專案的應用程式時,您可以採用下列其中一種方法開始匯出資料:

  • 在「Databases」面板中選取資料庫或資料表,然後按一下靠近面板頂端的「Export to file」
  • 在「Databases」面板中的資料庫或資料表上按一下滑鼠右鍵,然後從內容選單中選取「Export to file」
  • 如要在分頁中檢查資料表或查詢結果,按一下資料表或查詢結果上方的「Export to file」即可。

完成匯出操作的選擇後,利用「Export」對話方塊協助您完成至最後步驟,如下所示。視您想匯出資料庫、資料表或查詢結果而定,您可以選擇使用以下一或多種格式匯出資料:DB、SQL 或 CSV。

「Export Database」對話方塊

記憶體分析器記錄功能的新版 UI

我們整合了不同記錄活動 (例如擷取記憶體快照資料,以及記錄 Java、Kotlin 和原生記憶體配置) 的記憶體分析器使用者介面 (UI)。

記憶體分析器中顯示的記憶體配置

記憶體分析器提供以下選項:

  • 擷取記憶體快照資料:查看在特定時間點使用記憶體的應用程式內物件。
  • 記錄原生配置:查看各個 C/C++ 物件在一段時間內的配置情形。
  • 記錄 Java/Kotlin 配置:查看各個 Java/Kotlin 物件在一段時間內的配置情形。

這三種選項的使用方式如下:

  • 如要擷取記憶體快照資料,請依序選取「Capture heap dump」>「Record」。分析器擷取記憶體快照資料後,記憶體分析器 UI 會轉換至另一個顯示記憶體快照資料的畫面。

    記憶體分析器中的記憶體快照資料範例

  • 如要針對搭載 Android 10 以上版本的裝置記錄原生配置情形,請依序選取「Record native allocations」>「Record」。系統會持續記錄到您點選「Stop」圖示 為止,之後記憶體分析器 UI 會轉換至另一個顯示原生記錄的畫面。

    如果是搭載 Android 9 以下版本的裝置,則無法使用「Record native allocations」選項。

  • 如要記錄 Java 和 Kotlin 配置,請依序選取「Record Java/Kotlin allocations」>「Record」。如果裝置搭載 Android 8 以上版本,記憶體分析器 UI 會轉換至另一個畫面,顯示進行中的記錄情形。您可以與記錄上方的迷你時間軸互動,例如變更選取範圍。如要完成記錄作業,請選取「Stop」圖示

    記憶體分析器中以視覺化方式呈現 Java 配置

    如果裝置搭載 Android 7.1 以下版本,記憶體分析器會使用舊版配置記錄功能,在時間軸上顯示記錄情形,直到您點選「Stop」

「Refresh Linked C++ Project」更新

我們已將與設定無關的檔案從.cxx/資料夾移至build/資料夾。CMake C++ 建構作業需要一個設定階段,該階段會產生用於執行編譯和連結步驟的 Ninja 專案。透過 CMake 產生專案的費用高昂,且這類專案理應會在執行 Gradle 清理作業後保存下來。因此,這些檔案儲存在build/資料夾旁邊的.cxx/資料夾中。一般而言,Android Gradle 外掛程式會偵測設定異動,並自動重新產生 Ninja 專案。不過,這個外掛程式無法偵測到所有異動。在這種情況下,您可以使用「Refresh Linked C++ Project」選項,手動重新產生 Ninja 專案。

用於多裝置測試的全新測試矩陣

檢測設備測試現可在多部裝置上同時執行,也能使用專屬檢測設備測試結果面板進行調查。您可以透過這個面板,判斷測試是因 API 級別還是硬體屬性而失敗。

檢測設備測試面板

如要確保所有使用者都有優異的應用程式使用體驗,最好的方法就是針對各種 API 級別和板型規格測試應用程式。

如何利用這項功能:

  1. 從 IDE 正上方的目標裝置下拉式選單中,選擇「Select Multiple Devices」

    「修改裝置組合」對話方塊

  2. 選取目標裝置,然後按一下「OK」

    「修改裝置組合」對話方塊

  3. 執行測試。

如要在「Run」面板中查看測試結果,請依序點選「View」>「Tool Windows」>「Run」

新的測試結果面板可讓您依狀態、裝置和 API 級別篩選測試結果。此外,您可以按一下標題來排序各個資料欄。只要按一下個別測試,即可查看每部裝置的記錄和裝置資訊。

資料繫結的 StateFlow 支援

針對會用到協同程式的 Kotlin 應用程式,您現在可以使用 StateFlow 物件做為資料繫結來源,自動向 UI 通知資料異動情形。資料繫結將具有生命週期感知特性,且只會於 UI 在畫面上顯示時觸發。

如要將StateFlow物件與繫結類別搭配使用,您必須指定生命週期擁有者來定義StateFlow物件的範圍,並在版面配置中,將ViewModel元件的屬性和方法指派至使用繫結運算式的對應檢視,如以下範例所示:

class ViewModel() {
   val username: StateFlow<String>
}
<TextView
    android:id="@+id/name"
    android:text="@{viewmodel.username}" />

如果您在採用 AndroidX 的 Kotlin 應用程式中,資料繫結功能已自動支援StateFlow,包括協同程式依附元件。

詳情請參閱「使用可觀察的資料物件」。

改善建議匯入項目功能

我們改善了建議匯入項目功能支援的程式庫數量,並提高索引更新頻率。透過建議匯入項目功能,您可以輕鬆快速地將特定 Google Maven 成果匯入類別和 Gradle 專案。當 Android Studio 偵測到特定 Google 程式庫的未解析符號時,IDE 會建議將該程式庫匯入類別和專案。

版本分析器中的設定快取支援功能

版本分析器現在可辨識專案未啟用設定快取的情形,並建議您啟用這項功能來進行最佳化。在啟用之前,版本分析器會評估相容性,讓您瞭解為專案啟用設定快取功能是否會發生問題。

版本分析器中的設定快取資訊

支援 Jetpack Compose 工具

如要預覽和測試使用Jetpack Compose的應用程式,我們現在還提供額外支援功能。為了在透過 Jetpack Compose 開發時享有最佳體驗,請使用最新版本的 Android Studio Arctic Fox,以便享有智慧編輯器功能的好處,例如新專案範本,以及立即預覽 Compose UI 的功能。

Compose 預覽

現在可以使用以下@Preview 方法參數:

  • showBackground:開啟和關閉預覽背景。
  • backgroundColor:設定僅在預覽畫面中使用的顏色。
  • uiMode:這項新參數可採用任何Configuration.UI_*常數,還可用來變更預覽行為,例如設為夜間模式來瞭解主題的回應情形。

Compose 預覽 UI

互動式預覽

您可以使用這項功能與 UI 元件互動、點選元件,以及查看狀態變化。如果想預覽動畫,以及取得相關回饋來瞭解 UI 的回應情形,這是相當便捷的做法。如要啟用這項功能,請按一下「Interactive」圖示 ,系統隨即會切換預覽模式。

如要停用這項功能,請按一下頂端工具列中的「Stop Interactive Preview」。

互動式預覽 UI

部署至裝置

您可以使用這項功能,將 UI 的程式碼片段部署至裝置。這樣一來,您就可以在裝置上測試一部分的程式碼,而不必啟動完整應用程式。

@Preview 註解旁邊或預覽頂端按一下「Deploy to Device」圖示 ,Android Studio 就會將該 @Preview 部署至已連結的裝置或模擬器。

常值即時編輯

我們新增了常值即時編輯功能,協助開發人員在程式碼中使用 Compose 快速編輯常值 (字串、數字、布林值),並立即查看結果,完全不必等待編譯。這項功能的目標,是要讓程式碼異動內容近即時顯示在預覽、模擬器中或實體裝置上,藉此提高開發人員的工作效率。

編輯數字和字串後,更新內容立即顯示在預覽中和裝置上

版面配置檢查器中的 Compose 支援

版面配置檢查器可讓您針對在已連結的裝置上執行的應用程式,查看與其版面配置相關的豐富詳細資訊。您可以與應用程式互動,並在這項工具中查看即時更新,以便快速偵錯可能發生的問題。

您可以檢查透過全新 Android 宣告式 UI 架構 Jetpack Compose 編寫的版面配置。無論應用程式採用完全以 Compose 編寫的版面配置,還是混用 Compose 和檢視的版面配置,版面配置檢查器都可協助您瞭解版面配置在執行裝置上的呈現效果。

開始使用

如要開始使用,請將應用程式部署至已連結的裝置,然後依序選取「View」>「Tool Windows」>「Layout Inspector」,藉此開啟「Layout Inspector」。假如「Layout Inspector」未自動連結至應用程式程序,請從程序下拉式選單中選取所需的應用程式程序。應用程式的版面配置應該隨即會顯示在工具視窗中。如要開始檢查 Compose 版面配置,請選取顯示在算繪結果中的版面配置元件,或從「Component Tree」中選取該元件。

版面配置檢查器 UI

「Attribute」視窗會顯示目前所選 Compose 函式的詳細資訊。在這個視窗中,您可以檢查函式的參數和參數值,包括修飾符和 lambda 運算式。檢查器會提供捷徑,協助您前往原始碼中的 lambda 運算式。

版面配置檢查器會顯示呼叫堆疊中,發送元件到應用程式版面配置的所有 Compose 函式。在許多情況下,這也包括 Compose 程式庫在內部呼叫的 Compose 函式。如果只想在「Component Tree」中查看應用程式直接呼叫的 Compose 函式,請按一下篩選操作圖示 ,這樣或許能減少樹狀結構中的節點數量,只顯示您可能會想檢查的節點。

改善部署下拉式選單

裝置下拉式選單現在可區分所選裝置設定中不同種類的錯誤。針對圖示和樣式變更,系統現在會區分「錯誤」(導致設定失效的裝置選項) 和「警告」(可能導致非預期行為但仍可執行的裝置選項)。

此外,如果您嘗試將專案發布至有錯誤或相關警告的裝置,Android Studio 現在會顯示警告訊息。

新的 Wear OS 配對小幫手

新的 Wear OS 配對小幫手可逐步引導開發人員直接在 Android Studio 中,將 Wear OS 模擬器與實體或虛擬手機配對。這個小幫手可協助您在手機上安裝正確的 Wear OS 隨附應用程式,並在兩部裝置之間設定連線。如要開始使用,請依序前往裝置下拉式選單 >「Wear OS Emulator Pairing Assistant」

Wear OS 配對小幫手操作示範

回應式版面配置範本

Android Studio Arctic Fox 現在提供新的版面配置範本,可配合各種螢幕尺寸和應用程式大小變更 (例如手機、折疊式裝置、平板電腦和分割畫面模式) 進行調整。建立新專案或模組時,選取「Responsive Activity」範本即可建立這類版面配置,其中包含可動態調整大小的元件。

小型螢幕上的回應式版面配置範本 中型螢幕上的回應式版面配置範本 大型螢幕上的回應式版面配置範本

如要開始使用,請依序點選「File」>「New」,接著選取「New Project」或「New Module」,再選取「Responsive Activity」範本。

新增專案精靈中的回應式版面配置範本

版面配置編輯器的無障礙功能檢查工具

我們已將 Android 無障礙功能測試架構整合至 Android Studio,協助您找出版面配置中的無障礙功能問題。這項工具會回報無障礙相關問題,並針對某些常見問題 (例如缺少內容說明或對比度不足) 提供修正建議。如要啟動面板,請按一下版面配置編輯器中的錯誤回報按鈕

無障礙功能檢查工具示範

支援 Apple 晶片

現在 Android Studio 和 Android Emulator 可在執行 Apple 晶片 (arm64) 硬體架構時,為核心開發人員工作流程提供初步支援,包括相對應的模擬器系統映像檔。

這項功能尚未適用於所有 SDK 和 NDK 指令列工具。您可能需要在機器上執行 Rosetta 2,才能執行部分工具。

Apple 晶片支援功能

Arctic Fox 的已知問題

本節說明 Android Studio Arctic Fox 目前的已知問題。

v3.6-v4.1 版修補程式在 Windows 上無法運作

在 Windows 平台上,Android Studio Arctic Fox 3.6 至 4.1 穩定版的修補程式可能無法運作。

修補程式版本

以下列出 Android Studio Arctic Fox 的修補程式版本。

Android Studio Arctic Fox | 2020.3.1 修補程式 4 (2021 年 12 月)

這項次要更新修正了下列錯誤:

  • Android Gradle 外掛程式
    • VariantOutput.version設定Provider可能會發生設定快取相關問題
    • gradeResValues.xml 在簽署發布時未更新
  • D8/R8
    • R8 會壓縮版本所含的類別建構函式中擲回的java.lang.ClassCastException
    • dex 合併期間無法存取的類型調整
    • java.lang.VerifyError:無法從 Reference.java.lang.Object 類型的物件存取執行個體欄位,導致驗證器無法進行驗證
  • Lint
    • 停用MediaCapabilities Lint 檢查功能
    • 啟用shrinkResources時,Lint 會回報誤判的[可實例化]錯誤
  • 範本
    • 「Import Module」選項顯示為灰色

詳情請參閱 2020.3.1 修補程式 4 網誌文章

Android Studio Arctic Fox | 2020.3.1 修補程式 3 (2021 年 10 月)

這項次要更新修正了下列錯誤:

  • Android Gradle 外掛程式
    • Lint 獨立外掛程式無法妥善處理gradleApi()依附元件
    • 在 Studio 以外的環境執行 Gradle 建構作業時觸發 JPS 建構條件
    • 如果在專案中同時啟用 KSP 和 Kapt,且兩者皆包含會產生來源的處理器,則會導致BundleLibraryClassesInputs發生問題
  • C++ 編輯器
    • 在背景長時間執行 JniReferencesSearch 運算會導致 UI 沒有反應
  • 資料庫檢查器
    • 允許儲存資料庫
    • 無法在路徑含有空格的情況下,使用應用程式檢查/資料庫檢查器匯出資料
  • Dexer (D8)
    • Java 的 lambda 會導致為子類別建立子類別時發生非預期的行為
  • 縮減器 (R8)
    • R8 壓縮作業期間發生Cannot constrain type錯誤
    • 執行 R8 3.0.69 版 (透過 AGP 7.0.2 版) 和 3.0.72 版時發生問題

詳情請參閱 2020.3.1 修補程式 3 網誌文章

Android Studio Arctic Fox | 2020.3.1 修補程式 2 (2021 年 9 月)

這項次要更新修正了下列錯誤:

  • Android Gradle 外掛程式
    • 從 AS Arctic Fox Canary 7 升級至 Canary 8 時,Gradle 同步處理作業啟動了 10 次
    • 脫糖和可重現的建構問題
  • C++ 建構
    • 如果使用了 tasks.whenTaskADDED 閉包,則 Android Gradle 外掛程式 7.0.0 版的 APK 中不會包含 jniLibs
  • 編輯
    • 在 Arctic Fox 中,MergedManifestRefreshListener 會陷入無限迴圈
  • Lint
    • 無法針對 Lint 檢查執行 Lint 檢查
  • 縮減器 (R8)
    • 在 AGP7 中使用 R8 執行建構作業時發生 ClassNotFoundException

詳情請參閱有關 2020.3.1 修補程式 2 的 網誌文章

Android Studio Arctic Fox | 2020.3.1 修補程式 1 (2021 年 8 月)

這項更新修正了下列問題:

  • Android Gradle 外掛程式
    • TypedefRemover 使用 ASM5,並與需要 ASM7 的 JDK 11 來源不相容
    • 無法在 AGP 7.0.0 版中透過 Groovy DSL 使用某些新的 DSL 區塊
    • AGP 7.0.0 穩定版針對 libraryVariants.all{applicationId} 擲回 ExternalApiUsageException
  • C++ 偵錯工具
    • 使用 Mac M1 裝置啟動原生偵錯工作階段時發生 AS Arctic Fox 錯誤:「發現無效 LLDB 設定」
  • 資源管理工具
    • (Windows)「New」>「Vector Asset」> picture.svg:產生的 XML 中含有無效的減號字元
  • 縮減器 (R8)
    • BridgeHoisting 中的 NPE
    • 升級至 7.0.0 版後,R8 發生「內嵌後方法中有非預期的使用情形」錯誤並終止運作

詳情請參閱有關 2020.3.1 修補程式 1 的網誌文章