Android Studio 過往版本

本頁面列出 Android Studio 過往版本中各個主要版本的新功能和改善項目。如要查看最新版本的新功能,請參閱目前的 Android Studio 版本資訊

如需最新的版本相關資訊,包括各預覽版本所含的重要修正內容清單,請參閱版本更新。如要瞭解 Android Gradle 外掛程式的新功能,請參閱版本資訊

Android Gradle 外掛程式與 Android Studio 相容性

Android Studio 建構系統以 Gradle 為基礎,Android Gradle 外掛程式則加入了建構 Android 應用程式專用的功能。下表列出各個 Android Studio 版本所需的 Android Gradle 外掛程式版本。

Android Studio 版本 必要的外掛程式版本
Flamingo | 2022.2.1 3.2-8.0
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

如要瞭解 Android Gradle 外掛程式的新功能,請參閱 Android Gradle 外掛程式版本資訊

Android Studio Chipmunk | 2021.2.1

支援透過 Jetpack Compose 建立應用程式

動畫預覽支援 animatedVisibility

Android Studio Chipmunk 支援動畫預覽中的 animatedVisibility API。如要搭配 animatedVisibility 使用動畫預覽,請使用 Compose 1.1.0 以上版本。如要進一步瞭解動畫預覽,請參閱「動畫」一節。

支援透過程式庫模組部署預覽

預覽功能可讓您在 Android Studio 中查看 UI,無需在實體裝置上執行應用程式。在 Android Studio Chipmunk 中,您可以將特定 @Preview 從程式庫模組部署至模擬器或實體裝置。詳情請參閱「部署預覽」。

支援剖析應用程式

在 Android 12 以上版本上偵測資源浪費情形

針對搭載 Android 12 以上版本的裝置,CPU 分析器中「Display」窗格之下的「Janky frames」歷程會顯示已擷取的追蹤記錄。

如何偵測資源浪費:

  1. 在開發模擬器或裝置上啟動應用程式。
  2. 在 Android Studio 中,依序選取「View」>「Tool Windows」>「Profiler」,或按一下工具列中的「Profile」圖示

    如果顯示「Select Deployment Target」對話方塊,請選擇要用來部署應用程式的裝置,以便進行剖析。如果您已透過 USB 連線裝置,但清單中未列出該裝置,請確認您已啟用 USB 偵錯

  3. 按一下 CPU 時間軸中任一處,即可開啟 CPU 分析器。

  4. 「Display」下方應該會顯示「Janky frames」軌跡。根據預設,分析器只會顯示需列為調查的資源浪費影格。在每個資源浪費的影格中,紅色部分會醒目顯示影格超過轉譯期限的時間區段。Janky frames 歷程的螢幕截圖

  5. 找到某個卡頓影格後,並在上面按一下;或者,您也可以按下「M」來調整縮放,將焦點移至所選影格上。主要執行緒中會醒目顯示相關事件:「RenderThread」和「GPU 完成」分析器的螢幕截圖,顯示「Janky frames」和主要執行緒

  6. 您可以選擇要查看所有影格或轉譯時間的詳細資訊,只要分別勾選「All Frames」和「Lifecycle」核取方塊即可。 與上圖類似的分析器螢幕截圖,但「All Frames」和「Lifecycle」核取方塊為勾選狀態

詳情請參閱「UI 資源浪費偵測」。

修補程式版本

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

Android Studio Chipmunk | 2021.2.1 修補程式 2 (2022 年 8 月)

這次微幅更新修正了下列更新和錯誤:

Android 平台支援

透過 Android Studio Chipmunk 修補程式 2 和 Android Gradle 7.2.2,您可以設定 compileSdk=33,藉此針對 Android 13 API 進行編譯。支援的 SDK 版本「下限」最高可達第 32 版。Android Gradle 外掛程式 7.3.0-beta05 以上版本才支援 minSdk = 33

已修正問題
C++ 偵錯工具
即使是偵錯建構變數,來自依附元件專案的原生程式庫發布版本仍會封裝
設計工具
按下 Ctrl + D 鍵或點選「顯示差異」按鈕時,無法顯示 Git 差異
Dexer (D8)
記錄每個脫糖程式庫版本所需的編譯器版本
Gradle
匯入別名導致 Lint UnusedResources 出現偽陽性
匯入/同步處理
在新版本中建構多個變種版本的問題
縮減器 (R8)
IntSwitch 中的 ArrayIndexOutOfBoundsException
R8 3.1.7-dev 及以上版本未適當最佳化 Enums,導致 NoSuchFieldError
R8 導致 Scala 程式庫中發生 VerifyError
Gradle 7.2.0 造成 APK 建構錯誤 com.android.tools.r8.CompilationFailedException
縮減器中的 NPE,R8 3.2.60 版
[R8 3.3.57] 由於介面替換為要求較高 SDK 版本的抽象類別,導致 NoClassDefFound
使用 3.3.35 的 FieldAssignmentTracker 中的 NullPointerException

Android Studio Chipmunk | 2021.2.1 修補程式 1 (2022 年 5 月)

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

已修正問題
Dexer (D8)
第 8 版之前的 ART/Dalvik VM 不支援 JDK-8272564 修正項目
IntelliJ
檔案看守工具無法在 Ubuntu 20.04 啟動
缺少 MBP 15" 2018 觸控條選單。
執行
即使有可用的應用程式模組,也無法顯示裝置選項,且無法執行應用程式。
縮減器 (R8)
為什麼 R8 沒有向後移植預設介面的方法,但 D8 卻有?
循環參照:com.android.tools.r8.internal.R10:轉換為原始類型的非預期類型:OBJECT

Android Studio Bumblebee | 2021.1.1

Android Studio Bumblebee 是其中一個主要版本,包含下列功能和改善項目:

預設啟用 Compose 互動式預覽

從 Android Studio Bumblebee 開始,系統預設會啟用互動式預覽功能。這項功能可讓您與預覽互動,就像在裝置上進行互動一樣。互動式預覽位在沙箱環境中,與其他預覽保持隔離,且您可以在預覽中點選各個元素及輸入使用者輸入內容。這個做法可讓您快速測試可組合元件的各個狀態和手勢,例如核取方塊的已勾選或未勾選狀態。

預覽互動模式會直接在 Android Studio 中執行,無需執行模擬器。這會造成以下限制:

  • 無法連上網路。
  • 無法存取檔案。
  • 可能無法充分使用某些 Context API。

使用者在 Android Studio 中與預覽互動

向量可繪項目 (AVD) 動畫預覽

「向量可繪項目動畫」工具可讓您預覽可繪製資源動畫。您可以透過這項工具,在 Android Studio 中預覽<animation-list><animated-vector><animated-selector>資源,以便輕鬆修正自訂動畫。

使用者在 Android Studio 中預覽及播放動畫

適用於設計工具的新版裝置挑選器

為了簡化針對各種 Android 裝置設計應用程式的流程,我們更新了多個設計工具視窗 (例如版面配置編輯器和版面配置驗證) 中的裝置挑選器,加入可反映各裝置板型規格常見大小的參考裝置。無論是手機、平板電腦、Wear 裝置或 Android TV,您都能透過現實世界中熱門裝置最常採用的螢幕大小來預覽、驗證或編輯版面配置。

裝置挑選器包含依類別分組的裝置,以及裝置大小和螢幕密度

KMP 測試執行

您可以透過 Android Studio Bumblebee,針對 Kotlin Multiplatform (KMP) 專案執行測試。

為確保能順利透過 Android Studio 執行測試,您使用的各個程式必須符合以下所有條件:

  • AGP 7.0.0-alpha08 以上版本
  • Gradle 6.8.2 以上版本
  • Kotlin 外掛程式 1.4.30 以上版本

預設啟用非遞移 R 類別

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

如需使用這項功能的相關協助,您可以依序前往「Refactor」>「Migrate to Non-Transitive R Classes...」

Apple Silicon 支援更新

自去年起,Android Studio Arctic Fox 和 Android Emulator 都已開始支援在 Apple Silicon (arm64) 硬體上使用 macOS 的這個新架構。不過在這個版本中,我們更新了 Android SDK 平台工具 v32.0.0 版 (包括 adb 和 fastboot) 和建構工具 v32.1.0 版 (包括 aapt) 以採用通用二進位檔,讓您的 Android 開發人員工具不再需要執行 Rosetta 二進位檔轉譯器。請參閱 SDK 平台工具版本資訊

版面配置檢查器的新功能

擷取版面配置階層快照

您現在可以透過版面配置檢查器,儲存執行中應用程式的版面配置階層快照,以便與他人分享或日後供參考。

快照會擷取一般在使用版面配置檢查器時會看到的資料,包括詳細的版面配置 3D 轉譯內容、檢視/Compose/混合型版面配置的元件樹狀結構,以及各個 UI 元件的詳細屬性。如要儲存快照,請按照下列步驟操作:

  1. 將應用程式部署至搭載 API 級別 23 以上版本的裝置。
  2. 依序選取「View」>「Tool Windows」>「Layout Inspector」,開啟版面配置檢查器。
  3. 版面配置檢查器應該會自動連結至應用程式程序。如未自動連結,請從下拉式選單中選取應用程式程序。
  4. 如要擷取快照,請按一下版面配置檢查器工具列中的「Export snapshot」圖示 匯出圖示
  5. 在隨即顯示的系統對話方塊中,指定快照的名稱和儲存位置。請務必使用 *.li 副檔名儲存檔案。

接著只要在主選單列中依序選取「File」>「Open」並開啟*.li檔案,即可載入版面配置檢查器快照。

Sunflower 範例應用程式的版面配置檢查器快照

支援檢查 Compose 語意

在 Compose 中,語意會以無障礙服務和測試架構能夠理解的替代方式描述 UI。在 Android Studio Bumblebee 中,您現在可以使用版面配置檢查器來檢查 Compose 版面配置中的語意資訊。

透過版面配置檢查器顯示的語意資訊

選取某個 Compose 節點後,請使用「Attributes」視窗檢查該節點是直接宣告語意資訊、合併其子項的語意,還是同時採用這兩種做法。如要快速找出包含語意 (無論是直接宣告或合併而來) 的節點,請在「Component Tree」視窗的「View options」下拉式選單中,選取「Highlight Semantics Layers」。選取這個選項後,系統只會醒目顯示樹狀結構中包含語意的節點,且您可以使用鍵盤快速瀏覽各個節點。

避免活動重新啟動

將版面配置檢查器連結至透過舊版 Android Studio 執行的應用程式後,應用程式會重新啟動。系統必須設定裝置標記,才能檢查應用程式的版面配置。

在 Android Studio Bumblebee 中,您可以採取下列其中一種做法事先設定這個標記,避免活動在連結版面配置檢查器時重新啟動:

  • 啟用執行設定選項

    1. 在主選單列中依序選取「Run」>「Edit Configurations」。畫面上隨即會顯示「Run/Debug Configurations」對話方塊。
    2. 前往您要使用的執行設定。
    3. 在「Layout Inspector options」部分中,勾選「Connect to Layout Inspector without restarting activity」旁邊的方塊。
    4. 下次想要透過版面配置檢查器檢查應用程式時,使用該執行設定即可。
  • 透過指令列設定標記:

    1. 在與裝置連結的機器上開啟終端機視窗
    2. 使用以下指令設定應用程式的裝置標記:
    adb shell settings put global debug_view_attributes_application_package <my_package_name>
    
    1. 將應用程式部署至裝置,並連結版面配置檢查器。Android Studio 會檢查是否已設定標記,並盡可能避免重新啟動活動。

文件版面配置檢查器快照

您現在可以擷取應用程式版面配置階層的快照,以便儲存、分享或日後檢查。快照會擷取一般在使用版面配置檢查器時會看到的資料,包括詳細的版面配置 3D 轉譯內容、檢視/Compose/混合型版面配置的元件樹狀結構,以及各個 UI 元件的詳細屬性。如要擷取快照,請在檢查執行中應用程式的版面配置時,按一下版面配置檢查器工具列中的「Export snapshot」圖示 匯出圖示,然後使用*.li副檔名儲存快照。接著只要在主選單列中依序選取「File」>「Open」並開啟 *.li 檔案,即可載入版面配置檢查器快照。快照會顯示在「Editor」視窗的分頁中,方便您與執行中的應用程式進行比較。

「App Inspection」視窗中的新功能

Android Studio Bumblebee 的「App Inspection」視窗提供新的工具和功能。您可以在主選單列中依序選取「View」>「Tools Windows」>「App Inspection」,開啟「App Inspector」

網路檢查器

「Profilers」工具視窗中的網路分析器現已移至「App Inspection」工具視窗。如果先前使用過網路分析器,您仍可繼續享有這項工具原有的各項實用功能和豐富的網路流量資料。只要將應用程式部署至搭載 API 級別 26 以上版本的裝置,然後依序選取「App Inspector」>「Network Inspector」分頁標籤即可。

檢查工作、鬧鐘和 Wakelocks

現在除了檢查工作站以外,您還可透過「Background Task Inspector」檢查應用程式的工作、鬧鐘和 Wakelocks。各類型的非同步工作現在會顯示在檢查器分頁的對應標題底下,方便您監控工作的狀態和進度。與工作站類似,您可以在「Task Details」面板中選取工作、鬧鐘或 Wakelock,藉此檢查其詳細資訊。

背景工作檢查器顯示工作、鬧鐘和 Wakelocks

由於工作站實際上會使用工作和 Wakelocks,因此由工作站安排執行的工作會顯示為各個工作站的子項。請注意,只有在圖表模式下才能看到工作站。

無線偵錯

Android Studio Bumblebee 支援搭載 Android 11 以上版本裝置的無線偵錯功能。您可以透過 Wi-Fi 從 Android Studio 配對及部署應用程式,而不必使用 USB 傳輸線,也不必使用指令列管理 Android Debug Bridge (adb) 連線。如要使用這項功能,請在裝置選取選單中選取「Pair devices using Wi-Fi」選項,然後選擇 QR 圖碼或配對 PIN 碼。接著,在搭載 Android 11 以上版本裝置的「開發人員選項」下方,找到「無線偵錯」畫面,然後以無線方式初始化及連線至 Android Studio 的 adb 工作階段。如要進一步瞭解無線偵錯設定,請參閱「透過 Wi-Fi 連線至裝置 (Android 11 以上版本)」。

透過 Wi-Fi 配對裝置

統合 Gradle 測試執行器

Android Gradle 外掛程式 7.1.0 版和 Android Studio Bumblebee 以上版本會使用 Gradle 本身的 Android 設備測試執行器來執行設備測試。無論您是透過指令列使用 AGP 執行測試 (例如在持續整合伺服器上),或是透過 Android Studio 進行測試,只要使用相同的測試執行器,都有可能獲得一致的結果。

Bumblebee 中統一的 Gradle 測試執行器

先前的 Android Studio 版本是使用 IntelliJ Android 檢測設備測試執行器,而非 Gradle 的 Android 檢測設備測試執行器。因此,如果您並非使用最新版 Android Studio,則視您是透過 Android Studio 或使用 Gradle 外掛程式的指令列執行測試而定,測試結果可能會有所不同,例如使用某個執行器時通過測試,但使用另一個執行器時未通過測試。

舊版 Android Studio 中的不同測試執行器

如果您已將檢測設備測試設定儲存至專案,系統會在已連結的裝置上使用 Gradle 執行測試。您可以使用測試類別或方法旁邊的溝槽操作,建立新的檢測設備測試設定。

透過溝槽操作執行測試

執行檢測設備測試時,您可以在 Gradle 工作輸出的測試矩陣中檢查測試輸出結果,確認 Android Studio 有使用 Gradle 測試執行器。雖然我們不斷隨著各個 Android Studio 版本改善這項功能,但目前仍有一些已知問題。如果您遇到問題,請回報錯誤。您也可以停用新的測試管道,以便恢復舊的行為模式。

Android Emulator 現在預設會直接在 Android Studio 中執行

Android Emulator 預設會直接在 Android Studio 中執行。這可讓您節省螢幕空間、使用快速鍵在模擬器和編輯器視窗之間快速瀏覽,以及將 IDE 和模擬器工作流程彙整到單一應用程式視窗。

模擬器在 Android Studio 的工具視窗中啟動。

當模擬器執行時,您可以存取常用的模擬器動作 (例如旋轉) 和更進一步的控制選項 (例如瀏覽播放)。如要在另一個視窗中執行模擬器,請依序前往「File」>「Settings」>「Tools」>「Emulator」。如果使用 macOS,則依序前往「Android Studio」>「Preferences」>「Tools」>「Emulator」。接著取消選取「Launch in a tool window」

停用新的測試管道

根據預設,Android Studio Bumblebee 會使用 Gradle 執行檢測設備測試。如果您遇到問題,可以按照下列步驟停用這項行為:

  1. 依序選取「File」>「Settings」>「Build, Execution, Deploument」>「Testing」。(如果使用 macOS,則依序選取「Android Studio」 >「Preferences」>「Build, Execution, Deployment」>「Testing」
  2. 取消勾選「Run Android instrumented tests using Gradle」旁邊的方塊,然後按一下「OK」。

您也可以採用下列其中一種方法還原至舊行為:

  • 透過指令列執行 Gradle 工作時,使用以下指令列參數:-Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
  • 在專案的 gradle.properties 檔案中新增以下參數:android.experimental.androidTest.useUnifiedTestPlatform=false

為了協助解決您可能遇到的問題,請報告錯誤

全新裝置管理工具

全新的「Device Manager」視窗,當中的「pair device」選單選項處於選取狀態

裝置管理工具是 AVD Manager 的替代工具,兩者皆可透過 Android Studio 的歡迎畫面或在開啟專案後存取。裝置管理工具提供幾項新功能,讓您可更輕鬆地建立及管理所有本機測試裝置,例如:

  • 彈性靈活的 UI:如同其他 Android Studio 工具視窗,您可以將裝置管理工具固定在 IDE 中、以浮動方式顯示,或是顯示為獨立視窗。這樣您就能輕鬆存取裝置,而不會擋到 IDE 中的其他視窗。
  • 「Virtual」分頁:您可以透過這個分頁建立、管理及部署虛擬裝置;快速一覽各個裝置的詳細資料;而且只要在 Device File Explorer 中按一下就能迅速檢查裝置。
  • 「Physical」分頁:您可以透過這個分頁,使用 ADB Wifi 快速配對至新裝置,並快速一覽各個實體裝置的詳細資料。此外,只要在 Device File Explorer 中按一下相關按鈕,就能迅速檢查各個裝置的檔案系統。

如要開啟全新的裝置管理工具,請使用下列其中一種方法:

  • 在 Android Studio 歡迎畫面中,依序選取「More Actions」>「Virtual Device Manager」
  • 開啟專案後,在主選單列中依序選取「View」>「Tool Windows」>「Device Manager」

UI 資源浪費偵測

在使用搭載 Android 11 (API 級別 30) 或以上版本的裝置分析應用程式時,CPU 分析器現在會顯示一組新的追蹤,分別說明「Frame Lifecycle」下方各頁框的不同階段:「Application」、、「Wait for GPU」、「Composition」和「Frames on display」。每個歷程都會以頁框編號為頁框加上標籤,並為矩形加上色碼,方便您看到特定頁框在其生命週期中的位置,並提供如何切換為與 Vsync 事件比較的指引。您可以使用這項資料來瞭解您的應用程式中可能出現資源浪費的位置,並調查根本原因。在「Analysis」面板中,現在會提供「Frames」分頁標籤,便於提供所有頁框的轉譯資訊摘要。詳情請參閱「UI 資源浪費偵測」。

支援對可分析應用程式進行分析

分析應用程式時,請務必根據最適合使用者將安裝之內容的應用程式版本,產生正確的資料。如要這麼做,您現在可以在應用程式資訊清單中加入 <profileable> 屬性,以便分析不可進行偵錯的應用程式,如以下代碼所示:

<profileable android:shell="true"/>

「Profileable」是在 Android 10 中引入的一項資訊清單設定,可用於執行 CPU 和記憶體分析工作。使用可分析的標記 (而非可偵錯的標記) 的主要優勢是,在進行效能評估時可以降低負載水平;不過,某些分析功能不適用於可分析的版本,例如事件時間軸、API 啟動的 CPU 分析、記憶體快照資料或即時位置記錄。詳情請參閱「可分析的應用程式」。

收合呼叫堆疊頁框

您現在可以在檢查「Profilers」工具視窗中的「Callstack Sample Recording」時,收合與調查無關的頁框。呼叫有助於瞭解程式碼的哪些部分已執行,以及叫用的原因。不過,Java/Kotlin 程式的呼叫堆疊通常不只包含 Java/Kotlin 程式碼,還包含可能造成干擾的原生程式碼頁框。如要進一步瞭解如何修正呼叫堆疊檢視畫面,請參閱「檢查呼叫堆疊框」。

修補程式版本

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

Android Studio Bumblebee | 2021.1.1 修補程式 3 (2022 年 4 月)

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

  • Android Gradle 外掛程式
    • R8 回報的類別重複問題
  • 建構變數
    • 如果透過新的 onVariants API 設定變數的版本名稱,會導致 versionNameSuffix 無法正常運作
  • Compose 預先發布版
    • 修正了效能和穩定性相關錯誤。
    • 解決了使用常值即時編輯功能時偶爾發生凍結的問題。
  • 網路檢查器
    • 新的網路檢查器在 Bumblebee 更新後出現當機情形
    • 偵錯工具與最新版 Android Studio 連線時,我持續收到這則錯誤訊息。
    • TrackedHttpURLConnection.getHeaderField 當機並出現 NullPointerException
詳情請參閱 Android Studio Bumblebee 修補程式 3 網誌文章

Android Studio Bumblebee | 2021.1.1 修補程式 2 (2022 年 2 月)

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

  • C++ 建構
    • ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") 不得為空值
  • 程式碼編輯器
    • Android Studio 即時範本中的錯誤 - className() 運算式無法解析類別名稱
  • D8/R8
    • java.lang.NoSuchMethodError:無靜態方法 $jacocoInit
    • 因 Mockito 錯誤導致 Android 測試涵蓋範圍有缺漏
    • 需要解決方法來處理 API 31 中 CAS 實作錯誤的情況
    • 不支援密封類別
    • 在 Chrome 中啟用水平類別合併時發生 NullPointerException
    • 合併虛擬方法後發生 AbstractMethodError
    • 因 init-class out-type 有誤導致無法驗證堆疊框架
    • Dex 輸入使用未定義的暫存器
    • 分支版本的 StringBuilderOptimizerAnalysisTest 發生錯誤
    • R8 中的非確定性
  • 部署
    • 裝置擁有者應用程式專案執行失敗,並顯示「Couldn't terminate the existing process for」錯誤訊息
  • 設計工具
    • 啟用非遞移 R 類別時,Compose 預先發布版找不到其他模組的資源
    • Studio 在建構時會卡住。
  • 內嵌模擬器
    • 提升效能和穩定性。
  • 匯入/同步處理
    • 啟動 Bumblebee 時發生 IDE 錯誤:IdeBuildTasksAndOutputInformationImp 中的輸出類型 APK 無法使用輸出清單建構檔案
  • IntelliJ
    • 透過 Mac OS X Monterey Dock 啟動時未提供 Env 變數
  • Jetpack (androidx) >「Navigation」
    • 升級 SafeArgs,以最新的穩定版 AGP 為基礎
  • 工具視窗
    • 無法執行 Android 裝置管理工具
    • BumbleBee 中的網路檢查器並未以可讀取的格式顯示 API 回應
詳情請參閱 Android Studio Bumblebee 修補程式 2 網誌文章

Android Studio Bumblebee | 2021.1.1 修補程式 1 (2022 年 2 月)

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

  • 模擬器
    • 升級至 Bumblebee (Mac M1) 後無法連線至內嵌模擬器
  • IntelliJ
    • 透過 Mac OS X Monterey Dock 啟動時未提供 Env 變數

詳情請參閱 Android Studio Bumblebee 修補程式 1 網誌文章

Android Studio Arctic Fox | 2020.3.1

Android Studio Arctic Fox 是其中一個主要版本,包含下列功能和改善項目:

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

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

  • Android Gradle 外掛程式
    • VariantOutput.verison設定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 網誌文章

新的版本編號方式

新的 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>
    

新的背景工作檢查器

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

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

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

「Worker Details」分頁

您也可以在表格中選取工作站,並在工具列按一下「Show Graph 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 會建議將該程式庫匯入類別和專案。

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

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

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

改善 AGP 升級小幫手

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

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

重構非遞移 R 類別

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

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

支援 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」範本。

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

Arctic Fox 的已知問題

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

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

Android Studio Arctic Fox 穩定版的 v3.6-v4.1 修補程式在 Windows 平台上可能無法運作。

4.2 版 (2021 月 4 月)

Android Studio 4.2 版是主要版本,其中包含多項新功能和改善項目。

4.2.2 版 (2021 年 6 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

4.2.1 版 (2021 年 5 月)

這項次要更新整合 Kotlin 外掛程式 1.5.0 版,並修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

Android Gradle 外掛程式 4.2.0 版

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

Gradle 相容性與設定變更

在 Android Studio 中執行時 Gradle 建構工具時,工具會使用 Studio 隨附的 JDK。在先前的版本中,Studio 隨附的是 JDK 8。不過在 4.2 版中,已經改為封裝 JDK 11。使用新的隨附 JDK 執行 Gradle 時,可能會因垃圾收集器的異動而導致不相容問題,或是影響 JVM 效能。這些問題在AGP 版本資訊中有相關說明。

用於最佳化 Gradle 同步處理時間的選項

為提高 Gradle 同步處理效能,Android Studio 在同步處理時不會建構工作清單。這可讓 Gradle 同步處理作業更快處理完畢,並提升極大型專案的 UI 回應度。在 Android Studio 4.2 版中,這個選項預設為開啟。如要設為關閉,請依序前往「File」>「Settings」>「Experimental」。如果您使用 Mac,則依序前往「Preferences」>「Experimental」。接著,取消勾選「Do not build Gradle task list during Gradle sync」即可。

資料庫檢查器

查詢編輯器改善項目

資料庫檢查器提供一些改善項目,可協助您編寫及執行自訂 SQL 陳述式。在資料庫檢查器中開啟「New query」分頁時,您應該會注意到有一個更大且可調整大小的編輯器介面,可用來建立查詢及設定格式,如下所示。

資料庫檢查器編輯器

此外,您現在可以查看先前的查詢記錄。當您按一下「Show query history」按鈕「Show query history」按鈕時,畫面上應該會列出您先前針對目前所選資料庫執行的查詢。您可以點選畫面上列出的查詢,在編輯器中預覽完整查詢內容,並按下「Enter」鍵,將查詢複製到編輯器中。接著按一下「Run」即可執行陳述式。

在查詢編輯器中執行指令

離線模式

在先前的 Android Studio 版本中,如果您在使用資料庫檢查器時與應用程式程序中斷連線,系統會關閉檢查器及其資料。在 Android Studio 4.2 版中,我們加入了一項新功能,讓您可在程序中斷連線後繼續檢查應用程式的資料庫,這樣即使發生異常終止的情形,也能輕鬆地繼續偵錯應用程式。

中斷連線時,資料庫檢查器會下載資料庫,並以離線模式提供給您。在離線狀態下,您可以開啟資料表並執行查詢。

請注意,重新連線至執行中的應用程式程序時,資料庫檢查器會返回線上模式,並只顯示裝置上的資料。也就是說,當您重新連線至應用程式程序時,在離線模式下顯示的資料並不會保留下來。因此,資料庫檢查器不允許您在離線模式下編輯或執行修改陳述式。

AGP 升級小幫手

新的 Android Gradle 外掛程式升級小幫手可協助您更新專案的 AGP 版本。

Android Gradle 外掛程式升級小幫手對話方塊

這項工具以現有的 AGP 升級功能為基礎,可引導您進行整項專案的更新/重構作業,還可讓您在執行 AGP 升級作業之前預覽更新內容,避免造成潛在的破壞性變更。

預覽升級小幫手執行的變更

系統追蹤:改善記憶體和圖形相關指標

在 CPU 分析器中,系統追蹤功能現在提供可用來分析應用程式效能的新指標,包括:

  • 事件資料表:列出目前所選執行緒中的所有追蹤記錄事件。

  • BufferQueue:在「Display」部分中,這個新測試群組會顯示應用程式途徑BufferQueue(0、1 或 2) 的緩衝區數量,協助您瞭解圖像緩衝區在不同 Android 圖形元件間移動時的狀態。

    系統追蹤緩衝區佇列

  • CPU 頻率:在「CPU cores」部分中,這個新測試群組會依核心顯示 CPU 頻率,呈現出各個核心的運作情形。

    系統追蹤 CPU 頻率

  • 程序記憶體 (RSS):這個新視窗會顯示應用程式目前使用的實體記憶體量。

    系統追蹤程序記憶體 (RSS)

詳情請參閱「使用 CPU 分析器查看 CPU 活動」一文。

新的版面配置檢查器重新整理操作

版面配置檢查器是在 Android Studio 4.0 中推出,旨在協助您即時檢查執行中應用程式的 UI 堆疊。不過,由於您可能會想檢查特定時間點的應用程式版面配置快照,或是盡量降低應用程式即時更新對效能的影響,因此您不一定會想讓版面配置檢查器立即反映應用程式的運作情形。

在版面配置檢查器中暫停即時更新,並重新整理螢幕畫面擷取內容。

如要手動載入應用程式 UI 資料的快照,請先停用「Live updates」選項。接著,您可以按一下「Refresh」按鈕 ,擷取新的 UI 堆疊快照供您進行檢查。版面配置檢查器現在會記錄您的偏好設定,在切換不同工作階段時保持啟用或停用「Live updates」功能。

支援 Safe Args

Safe Args 是可產生簡單物件和建構工具類別的 Gradle 外掛程式,用於對任何相關聯的引數進行型別安全導覽及存取。針對 Safe Args,Android Studio 現在提供更豐富的相關支援,包括:

  • 適用於 Directions、Args 和各種建構工具類別的自動完成功能
  • Java 和 Kotlin 安全引數外掛程式的支援功能
  • 從原始碼至 XML 的瀏覽功能

指令列工具現在提供 R8 重新追蹤工具

指令列工具 4.0 版提供的 R8 重新追蹤是一項獨立工具,可用於從經過模糊處理的堆疊追蹤取得原始堆疊追蹤。

您可以透過 SDK Manager 下載這個套件,在android_sdk/cmdline-tools中安裝 R8 重新追蹤。您也可以下載獨立的指令列工具套件

如需使用資訊,請參閱使用手冊中的R8 重新追蹤

部署至多部裝置

為協助簡化跨裝置和 API 級別的應用程式測試流程,您現在可以將應用程式部署至多部裝置或多個模擬器,步驟如下:

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

    目標裝置下拉式選單

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

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

  3. 執行應用程式。

適用於功能模組的全新removable設定

Android Gradle 外掛程式 4.2 版使用bundletool1.0.0 版,後者針對採用功能模組的應用程式導入一項行為異動:凡是指定為dist:install-time且未明確標示為dist:removable的功能模組,全都會預設為不可移除。這項新設定可最佳化安裝時間模組和基礎模組的整合作業,進而提升部分應用程式的效能。

如要讓功能模組維持可移除狀態,請針對要解除安裝的模組設定dist:removable="true"

如要進一步瞭解這項新設定,請參閱功能模組資訊清單說明文件中有關dist:removable標記的說明。

套用變更

為了讓您在進行應用程式疊代作業時提升工作效率,我們針對搭載 Android 11 以上版本裝置的套用變更功能做出以下改善:

支援其他程式碼變更

針對搭載 Android 11 以上版本的裝置,您現在可以新增靜態最終原始欄位,然後按一下「Apply Code Changes」圖示 或「Apply Changes and Restart Activity」圖示 ,將變更內容部署到執行中的應用程式。

此外,您現在還可以新增資源,然後按一下「Apply Changes and Restart Activity」圖示 ,將變更內容部署至在 Android 11 裝置上執行的應用程式。

新版「New Project」和「New Module」精靈

「New Project」和「New Module」精靈經過更新,現可讓您更輕鬆地瀏覽、選取範本,以及輸入新專案或新模組的相關資訊。

此外,我們還移除了「New Module」精靈中的「Import .JAR/.AAR Package」選項。如要將 JAR 或 AAR 匯入專案,請改為使用「Project Structure」對話方塊

Kotlin 1.4.31 版

Android Studio 4.2 版隨附 Kotlin 1.4.31 版。請參閱Kotlin 1.4.0 版變更記錄瞭解重大異動事項。

ANDROID_SDK_HOME環境變數已淘汰

ANDROID_SDK_HOME環境變數已淘汰,並由ANDROID_PREFS_ROOT取代。詳情請參閱「模擬器環境變數」。

Android Studio 4.2 版的已知問題

本節說明 Android Studio 4.2 版的已知問題。如需完整問題清單,請前往已知問題頁面。

Android Studio 4.2.0 版所產生專案的 Kotlin 版本錯誤:「1.5.0-release-764」

如果您使用 Android Studio 4.2.0 版,並且已升級至 Kotlin 外掛程式 1.5.0 版,則會因以下 Gradle 同步處理錯誤,導致 Studio 建立的新 Kotlin 專案無法建構:Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

如要解決這個問題,請將專案build.gradle檔案中的「1.5.0-release-764」改成「1.5.0」。

針對金鑰和 keystore 使用不同密碼時會發生錯誤

從 4.2 版開始,Android Studio 是透過 JDK 11 運作。這項更新造成與簽署金鑰相關的基礎行為異動。

當您依序前往「Build」>「Generate Signed Bundle / APK」,並嘗試為應用程式套件或 APK 進行應用程式簽署設定時,為金鑰和 keystore 輸入不同的密碼可能會導致以下錯誤:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

為瞭解決這個問題,請為金鑰和 keystore 輸入相同的密碼。

安裝 4.2 版後無法啟動 Android Studio

Studio 會嘗試匯入先前的「.vmoptions」並進行清理作業,以便與 JDK 11 所用的垃圾收集器搭配使用。如果這項程序執行失敗,在「.vmoptions」檔案中設定了自訂 VM 選項的某些使用者可能會無法啟動 IDE。

為瞭解決這個問題,建議您在「.vmoptions」中,使用「#」字元註解排除自訂選項。「.vmoptions」檔案位於以下位置:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

如果嘗試上述解決方法後,Studio 仍無法啟動,請參閱「Studio 在升級後無法啟動」一節。

4.1 版 (2020 年 8 月)

Android Studio 4.1 版是主要版本,其中包含多項新功能和改善項目。

4.1.3 版 (2021 年 3 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

4.1.2 版 (2021 年 1 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

4.1.1 版 (2020 年 11 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

Android Gradle 外掛程式 4.1.0 版

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

新的資料庫檢查器

您可以透過新的「Database Inspector」檢查、查詢及修改執行中應用程式中的資料庫。如要開始使用,請將應用程式部署至搭載 API 級別 26 以上的裝置,然後在選單列中依序選取「View」>「Tool Windows」>「Database Inspector」

詳情請參閱「使用資料庫檢查器對資料庫進行偵錯」。

直接在 Android Studio 中執行 Android Emulator

您現在可以直接在 Android Studio 中執行 Android Emulator。這項功能可讓您節省螢幕空間、使用快速鍵在模擬器和編輯器視窗之間快速瀏覽,以及將 IDE 和模擬器工作流程彙整到單一應用程式視窗。

模擬器在 Android Studio 的工具視窗中啟動。

詳情請參閱Android Emulator 說明文件

使用 TensorFlow Lite 模型

您可以透過機器學習模型繫結功能,輕鬆地直接匯入.tflite模型檔案並在專案中使用。Android Studio 會產生易於使用的類別,讓您在更加類型安全的情況下,以較少的程式碼執行模型。

支援的模型

目前的機器學習模型繫結功能支援圖片分類和風格轉換模型 (前提是必須為這類模型提供中繼資料),未來將擴大支援其他問題領域,例如物件偵測、圖片區隔和文字分類等。

TensorFlow Hub提供多種包含中繼資料的預先訓練模型。您也可以自行為 TensorFlow Lite 模型新增中繼資料,詳情請參閱為 TensorFlow Lite 模型新增中繼資料

匯入模型檔案

如要匯入支援的模型檔案,請按照下列步驟操作:

  1. 依序點選「File」>「New」>「Other」>「TensorFlow Lite Model」,開啟 TensorFlow Lite 模型匯入對話方塊。
  2. 選取先前下載或建立的 .tflite 模型檔案。
  3. 按一下「Finish」

這樣做會將模型檔案匯入專案並放到 ml/ 資料夾中。如果該目錄不存在,Android Studio 會建立目錄。

匯入 TensorFlow Lite 模型

查看模型中繼資料和使用方式

如要查看已匯入模型的詳細資料,並瞭解如何在應用程式中使用模型,請在專案中的模型檔案上按兩下,開啟模型檢視器頁面,當中會顯示以下內容:

  • 模型:模型的概要說明
  • 張量:輸入和輸出張量的說明
  • 程式碼範例:說明如何在應用程式中與模型進行互動的範例

以下是使用mobilenet_v1_0.25_160_quantized.tflite的範例:

TensorFlow Lite 模型檢視器的螢幕截圖

如範例所示,Android Studio 會建立一個名為MobilenetV1025160Quantized的類別,用於與模型互動。

如果模型沒有中繼資料,這個畫面就只會提供少量資訊。

已知問題和解決方法

  • 除了圖片分類風格轉換以外,目前針對 TensorFlow Lite 模型支援的問題領域仍有限。雖然匯入功能應仍可正常運作,但部分模型輸入和/或輸出會以TensorBuffers表示,而非友善類型。如果模型沒有中繼資料,所有模型輸入和輸出都會是 TensorBuffers。
  • 系統不支援輸入和輸出資料類型與DataType.UINT8DataType.FLOAT32不同的模型。

這項功能仍在開發階段,因此請提供意見或回報錯誤

原生記憶體分析器

Android Studio 記憶體分析器現在提供原生記憶體分析器,適用於部署至搭載 Android 10 以上版本實體裝置的應用程式。您可以使用原生記憶體分析器,記錄原生程式碼的記憶體配置和取消配置情形,以及檢查原生物件的累計統計資料。

如要進一步瞭解原生記憶體分析器,請參閱「使用記憶體分析器檢查應用程式的記憶體用量」。

已知問題和解決方法

  • Android Studio 4.1 版中的原生記憶體分析器不適用於 Android 11 裝置。目前必須使用4.2 預覽版本才能分析 Android 11 裝置。

  • 應用程式啟動分析功能已從初始的 4.1 版起停用。我們會在即將發布的版本中啟用這項功能。

    您可以改為使用Perfetto 獨立指令列分析器來擷取啟動分析。

系統追蹤 UI:更簡便的選取方式、全新分析分頁,以及更多畫格轉譯資料

Android Studio 分析器中的系統追蹤 UI 包含以下改善項目:

  • 範圍式選取:在「Threads」部分中,您現在可以拖曳滑鼠來選取一個矩形區域。選取完畢後,只要按一下右上角的「Zoom to Selection」按鈕 或使用M鍵盤快速鍵,即可放大這個區域。如果您將類似的執行緒拖曳至相鄰位置,還可選取多個執行緒,一次檢查所有選取項目。舉例來說,您可以針對多個工作站執行緒執行分析。

  • 「Summary」分頁:「Analysis」面板中的新「Summary」分頁會顯示以下資訊:

    • 特定事件所有出現記錄的匯總統計資料,例如出現次數和最短/最長持續時間。
    • 指定出現記錄的追蹤事件統計資料。
    • 執行緒狀態分布情形的相關資料。
    • 指定追蹤事件持續時間最長的出現記錄。

    如要前往其他出現記錄,請在資料表中選取其他資料列。

  • 顯示資料:「Display」部分新增SurfaceFlingerVSYNC,可協助您調查應用程式 UI 的顯示問題。

如需記錄系統追蹤的基本使用操作說明,請參閱「使用 CPU 分析器查看 CPU 活動」文章中的「錄製追蹤記錄」一節。

現在提供獨立分析器

透過全新的獨立分析器,您現在可以直接分析應用程式,不必執行完整的 Android Studio IDE。

如需使用獨立分析器的操作說明,請參閱執行獨立分析器

支援 Dagger 導覽功能

用於瀏覽至 Dagger 使用者和提供者的 IDE 溝槽操作

Android Studio 在「Find Usages」視窗提供新的溝槽操作和更豐富的支援功能,讓您可輕鬆瀏覽 Dagger 相關程式碼。

  • 新的溝槽操作:針對使用 Dagger 的專案,IDE 會提供溝槽操作,協助您瀏覽以 Dagger 加註的程式碼。舉例來說,只要在使用特定類型的方法旁邊按一下溝槽操作,即可前往該類型的提供者。相反地,如果點選溝槽操作,則可前往使用某個類型做為依附元件的地方。

  • 「Find Usages」節點:當您針對特定類型的提供者叫用「Find Usages」時,「Find」視窗現在會包含列出該類型使用者的「Dependency consumer(s)」節點。相反地,如果針對插入 Dagger 依附元件的使用者叫用這項操作,「Find」視窗會顯示這個依附元件的提供者。

質感設計元件:新專案範本提供新版主題和樣式

動畫:使用新的質感設計屬性在 Android Studio 中建立專案。

「Create New Project」對話方塊中的 Android Studio 範本預設會使用質感設計元件 (MDC),並遵從新版的主題與樣式規範。更新內容包括:

  • MDC:如果專案依附com.google.android.material:material並採用build.gradle.基本應用程式主題,則會使用Theme.MaterialComponents.*父項並覆寫更新過的 MDC 顏色和「on」屬性。
  • 顏色資源:colors.xml 中的顏色資源會使用常值名稱 (例如 purple_500 而非 colorPrimary)。
  • 主題資源:主題資源位於themes.xml(而非 styles.xml) 中,並使用Theme.<ApplicationName>名稱。
  • 深色主題:基礎應用程式主題會使用DayNight父項,並分成res/valuesres/values-night
  • 主題屬性:版面配置和樣式中的主題屬性 (例如 ?attr/colorPrimary) 會參照顏色資源,避免以硬式編碼方式指定顏色。

IntelliJ IDEA 2020.1 版

核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA 2020.1 版的改善項目,包括可用於版本管控作業的新「Commit」視窗,以及新的 Zen 模式,該模式的開啟/關閉方式為依序選取「View」>「Appearance」>「Enter Distraction Free Mode」

如要進一步瞭解 2020.1 版的改善內容,請參閱以下頁面:

IDE 設定目錄變更

使用者設定目錄已變更至以下位置:

Windows

語法:%APPDATA%\Google\<product><version>

範例:C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

語法:~/Library/Application Support/Google/<product><version>

範例:~/Library/Application Support/Google/AndroidStudio4.1

Linux

語法:~/.config/Google/<product><version>

範例:~/.config/Google/AndroidStudio4.1

這些新的目錄位置與IntelliJ IDEA 的近期更新一致,後者是 Android Studio 所採用的 IDE。

Kotlin 1.3.72 版

Android Studio 4.1 版隨附的 Kotlin 1.3.72 版修正了多項錯誤,改善 Kotlin 醒目顯示、檢查和程式碼完成功能。詳情請參閱Kotlin 1.3.72 版變更記錄

自訂檢視預覽

建立自訂檢視 (例如擴充 ViewButton類別) 時,Android Studio 現在會顯示自訂檢視的預覽。您可以使用工具列中的下拉式選單切換不同的自訂檢視,或是點選相關按鈕來根據內容垂直或水平調整大小。

在 IDE 中預覽自訂檢視。

原生當機報告符號化

如果原生程式碼發生停止運作或 ANR 情形,系統會產生堆疊追蹤,這是一種快照,當中包含程式到停止運作為止所呼叫的一系列巢狀函式。這類快照可協助您找出及修正原始碼中的任何問題,但必須先經過符號化,才能將機器位址轉譯為人類可讀的函式名稱。

如果您是以 C ++ 等原生程式碼開發應用程式或遊戲,現在可以將每個應用程式版本的偵錯符號檔案上傳到 Play 管理中心。Play 管理中心會使用這些偵錯符號檔案,將應用程式的堆疊追蹤符號化,方便您分析停止運作和 ANR 事件。想瞭解如何上傳偵錯符號檔案,請參閱原生程式碼錯誤支援功能

套用變更

為了讓您在進行應用程式疊代作業時提升工作效率,我們針對搭載 Android 11 開發人員預覽版 3 以上版本裝置的套用變更功能做出以下改善:

加快部署速度

我們投入了大量心力,開發出一種無需安裝應用程式,就能在裝置上部署及保留變更的方法,協助您加快疊代速度。完成初始部署作業後,您可以利用「Apply Code Changes」圖示 或「Apply Changes and Restart Activity」圖示 將後續變更內容部署至 Android 11 裝置,藉此大幅加快部署速度。

如要進一步瞭解這兩項操作的差異,請參閱「套用變更」。

支援其他程式碼變更

針對搭載 Android 11 開發人員預覽版 3 以上版本的裝置,您現在可以新增方法,然後按一下「Apply Code Changes」圖示 或「Apply Changes and Restart Activity」圖示 ,將變更內容部署到執行中的應用程式。

4.0 版 (2020 年 5 月)

Android Studio 4.0 版是主要版本,其中包含多項新功能和改善項目。

4.0.1 版 (2020 年 7 月)

這項次要更新修正了多項錯誤,並且支援 Android 11 套件瀏覽權限的新預設設定。詳情請參閱Android Gradle 外掛程式 4.0.1 版本資訊

如要查看這個版本的重要錯誤修正清單,請參閱「版本更新網誌」上的相關文章。

4.0 版 (2020 年 5 月)

重要事項:更新之後,您必須重新啟動 Android Studio,才能套用從舊版 IDE 遷移的所有記憶體設定。詳情請參閱已知問題頁面。

Android Gradle 外掛程式 4.0.0 版

最新版本的 Android Gradle 外掛程式包含許多更新內容,例如適用於舊版 Android 和功能對功能依附元件的 Java 8 脫糖程序。詳情請參閱完整的 Android Gradle 外掛程式版本資訊

此外,Android Studio 現在提供一些新功能,可協助您提升建構成效。

版本分析器

將 Android Studio 4.0 版與 Android Gradle 外掛程式 4.0.0 以上版本搭配使用時,您可以透過「Build Analyzer」視窗瞭解及診斷建構程序的相關問題,例如已停用的最佳化設定和設定不當的工作。如要開啟「Build Analyzer」視窗,請按照下列步驟操作:

  1. 如果您尚未建構應用程式,請從選單列依序選取「Build」>「Make Project」以建構應用程式。
  2. 從選單列中依序選取「View」>「Tool Windows」>「Build」
  3. 在「Build」視窗中,透過下列其中一種方式開啟「Build Analyzer」視窗:
    • 在 Android Studio 完成專案建構作業後,按一下「Build Analyzer」分頁標籤。
    • 在 Android Studio 完成專案建構作業後,按一下「Build Output」視窗右側的連結。

「Build Analyzer」視窗會在左側的樹狀結構中彙整可能的建構問題。您可以檢查並點選各個問題,在右側面板中調查相關詳細資料。分析建構作業時,Android Studio 會計算決定了建構作業時間長度的一組工作,並以視覺化方式呈現相關資訊,協助您瞭解各項工作的影響。此外,您也可以展開「Warnings」節點,查看警告的詳細資料。

系統檢查建構過程中耗時最長的工作。

系統檢查決定了建構作業時間長度的工作。

D8 和 R8 中 Java 的 Java 8 程式庫脫糖程序

Android Studio 現在支援使用許多 Java 8 語言 API,而不針對應用程式設下最低 API 級別限制。

透過「脫糖」程序,Android Studio 3.0 以上版本的 DEX 編譯器 D8 已支援多種 Java 8 語言功能,例如 lambda 運算式、預設介面方法、試用資源等。Android Studio 4.0 版的脫糖引擎則進一步提供適用於 Java 語言 API 的脫糖程序。也就是說,您現在可以在支援舊版 Android 的應用程式中,加入原先只能在較新 Android 版本中使用的標準語言 API,例如java.util.streams

這個版本支援以下 API 組合:

  • 依序串流 (java.util.stream)
  • java.time」的子集
  • java.util.function
  • java.util.{Map,Collection,Comparator} 的近期新增項目
  • 選用 (java.util.Optionaljava.util.OptionalIntjava.util.OptionalDouble) 和其他適用於上述 API 的新類別
  • java.util.concurrent.atomic的新增項目 (AtomicIntegerAtomicLongAtomicReference上的新方法)
  • ConcurrentHashMap(包含針對 Android 5.0 版的錯誤修正)

為了支援這些語言 API,D8 會編譯獨立的程式庫 DEX 檔案 (包含所缺少 API 的實作項目) 並將這個檔案加到應用程式中。這個脫糖程序會重新編寫應用程式的程式碼,在執行階段改為使用這個程式庫。

如要啟用這些語言 API 的支援功能,請在應用程式模組build.gradle檔案中加入以下內容:

Groovy

android {
    defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
    }

    compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
}

Kotlin

android {
    defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled = true
    }

    compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled = true
        // Sets Java compatibility to Java 8
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.0.4")
}

請注意,在下列情況下,您可能需要在程式庫模組build.gradle 檔案中加入以上程式碼片段:

  • 程式庫模組的檢測設備測試會使用這些語言 API (直接或透過程式庫模組或其依附元件)。因此,您的檢測設備測試 APK 會提供缺少的 API。

  • 您希望單獨執行程式庫模組中的 lint。這是為了協助 Lint 識別有效的語言 API 使用情形,避免回報假警告。

功能對功能依附元件

在先前的 Android Gradle 外掛程式版本中,所有功能模組都只能依附應用程式的基礎模組。現在使用 Android Gradle 外掛程式 4.0.0 以上版本時,您可以加入依附另一個功能模組的功能模組。也就是說,:video功能可以將依附基礎模組的:camera功能做為依附元件,如下圖所示。

功能對功能依附元件

功能模組 :video 會將依附於基礎 :app 模組的 :camera 功能當做依附元件。

這表示當應用程式要求下載某個功能模組時,應用程式也會下載其所依附的其他功能模組。為應用程式建立功能模組後,您可以在模組的build.gradle檔案中宣告功能對功能依附元件。比方說,您可以將:video模組宣告為依附:camera,如下所示:

Groovy

// In the build.gradle file of the ':video' module.
dependencies {
    // All feature modules must declare a dependency
    // on the base module.
    implementation project(':app')
    // Declares that this module also depends on the 'camera' feature module.
    implementation project(':camera')
    ...
}

Kotlin

// In the build.gradle file of the ':video' module.
dependencies {
    // All feature modules must declare a dependency
    // on the base module.
    implementation(project(":app"))
    // Declares that this module also depends on the 'camera' feature module.
    implementation(project(":camera"))
    ...
}

此外,您應該要在 Android Studio 中啟用功能對功能依附元件功能,以便支援各項作業 (例如編輯 Run 設定),方法是從選單列中依序點選「Help」>「Edit Custom VM Options」並加入以下內容:

-Drundebug.feature.on.feature=true

依附元件中繼資料

使用 Android Gradle 外掛程式 4.0.0 以上版本建構應用程式時,外掛程式會加入相關中繼資料,用於描述編譯至應用程式中的依附元件。在應用程式上傳期間,Play 管理中心會檢查這些中繼資料,讓您享有以下好處:

  • 針對應用程式所用 SDK 和依附元件的已知問題接收相關快訊
  • 獲得實用意見回饋,以便解決這些問題

資料會經過壓縮、透過 Google Play 簽署金鑰加密,並儲存在所發布應用程式的簽署區塊中。不過,您可以前往以下目錄,在本機中繼建構檔案中自行檢查相關中繼資料:<project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt

如果不想提供這項資訊,您可以在模組的 build.gradle 檔案中加入以下內容,選擇不採用這項機制:

Groovy

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

Kotlin

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

支援 Kotlin DSL 指令碼檔案

Android Gradle 外掛程式現在支援 Kotlin DSL 建構指令碼檔案 (*.kts)。與 Android Studio 搭配使用時,某些 IDE 功能 (例如「Project Structure」對話方塊和建構指令碼快速修正功能) 現在也支援讀取及寫入 Kotlin 建構指令碼檔案。

CPU 分析器升級項目

我們根據使用者的意見回饋,致力從兩個重要面向來改善 CPU 分析器的使用者體驗。

首先,相較於先前的 Android Studio 版本,CPU 分析器中的 CPU 記錄錯誤率已大幅降低。

此外,CPU 分析器 UI 經過改良,可提供更符合直覺的工作流程。其中幾項重要的 UI 變更包括:

  • CPU 記錄現在與主要分析器時間軸分開,方便您進行分析。記錄資料會在「Profiler」視窗左側分組顯示。如要上下移動資料群組來重新整理清單,請按一下視窗右上角的選項圖示 分析器中的選項圖示,或是拖曳群組中的個別項目。
  • 您現在可以在執行緒活動時間軸中查看所有執行緒活動 (包括相關方法、函式和事件),更輕鬆地進行並列分析。瀏覽時間軸的方法有好幾種,說明如下:
    • 如要聚焦於特定時間點,請在左上角的 CPU 用量圖表中拖曳出所需範圍。
    • 如要放大或縮小,請按住 Control 鍵 (或 MacOS 的 Command 鍵) 並使用滑鼠滾輪。如要左右平移,請按住空格鍵並拖曳。
    • 此外,您可以使用 W 和 A 鍵更精細地放大和縮小,以及使用 S 和 D 鍵更精細地左右平移。
  • 「Flame Chart」、「Top Down」和「Bottom Up」分析的分頁現在都位於右側欄。在「Threads」群組中,系統追蹤記錄會自動展開,其他記錄類型則預設為收合狀態。在執行緒名稱上按兩下 (或按下 Enter 鍵) 即可展開或收合群組。
  • 此外,如螢幕截圖所示,系統追蹤 UI 也有以下幾點改善:
    • 現在事件帶有不同顏色,方便您區分。
    • 執行緒會依照當中的追蹤事件數量排序,因此「較忙碌」的執行緒在清單中會排在較前面的位置。
    • 您可以選取一或多個執行緒,只在右側欄中查看這些所選執行緒的分析結果。
    • 同樣地,您可以選取任何執行緒中的特定追蹤事件來查看其分析資料。

設計工具

這個版本的 Android Studio 提供設計工具方面的更新,例如版面配置檢查器和全新的 Motion Editor。

全新 Motion Editor

Android Studio 現在包含適用於MotionLayout版面配置類型的視覺設計編輯器,可以讓您更輕鬆地製作和預覽動畫。

Motion Editor 提供簡易介面,讓您操控 MotionLayout 程式庫中的元素,而這個程式庫是 Android 應用程式動畫的基礎。在先前的版本中,如要建立及變更這些元素,您必須手動編輯 XML 資源檔案中的限制。現在 Motion Editor 可為您產生這個 XML,並且支援開始和結束狀態、主要畫面格、轉場和時間軸。

如要進一步瞭解如何使用 Motion Editor,請參閱使用手冊

即時版面配置檢查器

只要透過新版即時版面配置檢查器對版面配置進行偵錯,就能針對部署至裝置的應用程式 UI,查看完整的即時深入分析資訊。

如要開啟「Layout Inspector」視窗,請依序點選「View」>「Tools Windows」>「Layout Inspector」。除了現有版面配置檢查器的許多功能,即時版面配置檢查器還提供以下功能:

  • 動態版面配置階層:會在裝置上的檢視區塊變更時更新。

動態版面配置階層

  • 屬性值解析堆疊:調查資源屬性值在原始碼中的來源位置,並透過屬性窗格中的超連結前往這個位置。

屬性值解析堆疊

  • 3D 檢視:透過進階 3D 圖查看執行階段的檢視區塊階層。如要使用這項功能,只要在「Live Layout Inspector」(即時版面配置檢查器) 視窗中按一下版面配置並旋轉即可。

版面配置檢查器:3D 檢視

您必須將應用程式部署至搭載 API 級別 29 以上的裝置或模擬器,才能使用即時版面配置檢查器。如要啟用即時版面配置檢查器,請依序前往「File」>「Settings」>「Experimental」並勾選「Enable Live Layout Inspector」旁邊的方塊。然後在「Layout Display」上方勾選「Live updates」旁邊的核取方塊。

版面配置驗證

版面配置驗證是一項視覺工具,可讓您同時預覽不同裝置和設定的版面配置,以便偵測版面配置錯誤,並打造無障礙程度更高的應用程式。

在「Layout Validation」視窗中建立自訂版面配置預覽

如要使用這項功能,請按一下 IDE 視窗右上角的「Layout Validation」分頁標籤:

Android Studio 中的「Layout Validation」分頁

「Layout Validation」視窗中有四組不同的設定可供選取,包括:

  • Pixel 裝置:在指定 Pixel 裝置上預覽應用程式。
  • 自訂:自訂螢幕方向或語言等顯示選項來預覽應用程式。
  • 色盲:模擬常見色盲類型來預覽應用程式。
  • 字型大小:使用多種字型大小預覽應用程式。

如要進一步瞭解如何使用版面配置驗證功能,請參閱「使用版面配置檢查器對版面配置進行偵錯」。

適用於程式碼縮減器規則的智慧編輯器功能

現在開啟 R8 程式碼縮減器規則檔案時,您可以在 Android Studio 中使用語法醒目顯示、程式碼完成和錯誤檢查等智慧編輯器功能。這個編輯器也與 Android Studio 專案相整合,可針對所有類別、方法和欄位提供完整符號完成功能,並讓您進行快速導覽和重構作業。

使用智慧編輯器功能編輯 R8 規則檔案

Kotlin Android 即時範本

Android Studio 現在提供適用於 Kotlin 類別的 Android即時範本。舉例來說,現在您可以輸入toast,然後按下Tab鍵快速插入浮動式訊息。如需可用即時範本的完整清單,請從選單列中依序點選「File」>「Settings」(如果您使用的是 Mac 作業系統,請依序點選「Android Studio」>「Preferences」),然後依序前往「Editor」>「Live Templates」

片段精靈和全新片段範本

現在只要依序前往「File」>「New」>「Fragment」>「Gallery」,或是在「Navigation editor」中按一下「Create new destination」,即可使用「New Android Fragment」精靈和全新片段範本。

更豐富的 Android Emulator 相機支援功能

使用 Android 11 映像檔時,Android Emulator 相機提供下列新功能:

  • RAW 擷取
  • YUV 重新處理
  • 等級 3 裝置
  • 邏輯相機支援

想進一步瞭解如何針對 Android 11 進行開發作業,請參閱Android 11 說明文件

C++ 程式碼編輯器現在提供 clangd

Jetbrains CLion (Android Studio 的 C++ 語言支援功能所採用的基礎技術) 現在採用以 LLVMclangdclang-ddy為基礎的檢查引擎,可加快 C/C++ 程式碼完成作業,並與 clang-tidy 更加完美整合。

Android Studio C++ 程式碼編輯器現在提供 clangd 和 clang-ddy,兩者都屬於開放原始碼 LLVM 額外工具:

  • clangd 可讓您在編輯器中完成程式碼及查看編譯錯誤訊息,並使用「前往定義」瀏覽功能。
  • clang-ddy 是 C++ Linter 工具,提供用於診斷及修正一般程式設計錯誤的可擴充架構。

在先前的版本中,Android Studio 使用者可透過 NDK 使用 clang-ddy。經過這次變更後,Android Studio 已不再依賴 NDK 來提供 clang-ddy 功能。

local.properties 檔案中的 ndk.dir 設定已淘汰

應用程式的local.properties檔案中不應再設定ndk.dir的值,且日後的版本將不再支援這項ndk.dir設定。Android Gradle 外掛程式預設會設定 NDK 版本,但如需使用特定版本的 NDK,您可以在build.gradle中設定android.ndkVersion

想進一步瞭解如何設定 NDK,請參閱「安裝及設定 NDK 和 CMake」。

IntelliJ IDEA 2019.3.3 版

核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA 2019.3.3 版的改善項目。

如要進一步瞭解 2019.3.3 版包含的其他 IntelliJ 版本改善內容,請參閱以下頁面:

3.6 版 (2020 年 2 月)

Android Studio 3.6 版是主要版本,其中包含多項新功能和改善項目。

我們還想感謝曾為這個版本貢獻心力的所有社群貢獻者

3.6.3 版 (2020 年 4 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

3.6.2 版 (2020 年 3 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

3.6.1 版 (2020 年 2 月)

這項次要更新修正了多項錯誤。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

設計工具

這個版本的 Android Studio 提供幾項設計工具方面的更新,包括版面配置編輯器和資源管理工具。

分割檢視模式及放大設計編輯器

分割檢視模式同時顯示設計和文字檢視區塊

這個版本對視覺設計編輯器進行了以下幾點更新:

  • 設計編輯器 (例如版面配置編輯器和導覽編輯器) 現在提供「Split」檢視模式,可讓您同時查看 UI 的「Design」和「Code」檢視區塊。編輯器視窗的右上角現在有三個按鈕查看圖示,可用來切換檢視選項:

    • 如要啟用分割檢視模式,請按一下「Split」圖示分割檢視模式圖示
    • 如要啟用 XML 來源檢視畫面,請按一下「Source」圖示來源檢視圖示
    • 如要啟用設計檢視畫面,請按一下「Design」圖示設計檢視畫面圖示
  • 設計編輯器中的縮放及平移控制項已移至編輯器視窗右下角的浮動式面板。

詳情請參閱「使用版面配置編輯器打造 UI」。

顏色挑選器資源分頁

當您在 XML 或設計工具中使用顏色挑選器時,IDE 現在會為您填入顏色資源值,協助您快速更新應用程式中的這類值。

已填入顏色值的顏色挑選器

資源管理工具

資源管理工具包含下列更新內容:

  • 資源管理工具現在支援大部分的資源類型。
  • 搜尋資源時,資源管理工具現在會顯示所有專案模組的結果。在過去,搜尋時只會傳回所選模組的結果。
  • 篩選器按鈕可讓您查看本機依附模組、外部程式庫和 Android 架構的資源。您也可以使用篩選器來顯示主題屬性。
  • 您現在可以在匯入過程中,按一下資源上方的文字方塊來重新命名資源。

詳情請參閱「使用資源管理工具管理應用程式的 UI 資源」。

Android Gradle 外掛程式更新內容

最新版本的 Android Gradle 外掛程式包含許多更新內容,包括建構速度的最佳化,以及 Maven 發布外掛程式和檢視區塊繫結支援功能。詳情請參閱完整版本資訊

檢視區塊繫結

檢視區塊繫結可為每個 XML 版面配置檔案產生繫結類別,讓您更輕鬆地編寫與檢視區塊互動的程式碼。這些類別包含所有檢視區塊 (在對應的版面配置中有 ID 的檢視區塊) 的直接參照內容。

這項功能會取代findViewById(),因此可避免無效檢視區塊 ID 造成空值指標例外狀況。

如要啟用檢視區塊繫結,您必須使用 Android Gradle 外掛程式 3.6.0 以上版本,並在每個模組的build.gradle檔案中加入以下內容:

Groovy

android {
    buildFeatures.viewBinding = true
}

Kotlin

android {
    buildFeatures.viewBinding = true
}

套用變更

您現在可以在新增類別後,按一下「Apply Code Changes」圖示 「Apply Code Changes」圖示 或「Apply Changes and Restart Activity」圖示 「Apply Changes」圖示,將變更的程式碼部署至執行中的應用程式。

如要進一步瞭解這兩項操作的差異,請參閱「套用變更」。

用於啟用免安裝應用程式支援功能的重構選單選項

建立應用程式專案後,您現在隨時可以為基礎模組啟用免安裝即用設定,方法如下:

  1. 從選單列中依序選取「View」>「Tool Windows」 >「Project」,開啟「Project」面板。
  2. 在基礎模組 (通常命名為「app」) 上按一下滑鼠右鍵,然後依序選取「Refactor」>「Enable Instant Apps Support」
  3. 畫面上會顯示對話方塊,請從當中的下拉式選單選取基礎模組。
  4. 按一下「OK」

詳情請參閱「Google Play 免安裝技術總覽」。

在 APK 分析工具中將類別和方法位元碼去模糊化

使用APK 分析工具檢查 DEX 檔案時,您可以按照以下步驟將類別和方法位元碼去模糊化:

  1. 在選單列中,依序選取「Build」>「Analyze APK」
  2. 在隨即顯示的對話方塊中,找到您要檢查的 APK 並選取該項目。
  3. 按一下「Open」。
  4. 在 APK 分析工具中,選取要檢查的 DEX 檔案。
  5. 在 DEX 檔案檢視器中,為要分析的 APK 載入 ProGuard 對應檔
  6. 在要檢查的類別或方法上按一下滑鼠右鍵,然後選取「Show bytecode」

原生工具

下列更新支援 Android Studio 中的原生 (C/C++) 開發作業。

支援 Kotlin

下列 Android Studio 的 NDK 功能原先是透過 Java 提供支援,現在也可透過 Kotlin 使用:

  • 從 JNI 宣告項目前往 C/C++ 中的對應實作函式。如要查看這項對應,請在受管理原始碼檔案中,將滑鼠游標懸停在行數附近的 C 或 C++ 項目標記上。
  • 自動建立 JNI 宣告項目的虛設常式實作函式。請先定義 JNI 宣告項目,然後在 C/C++ 檔案中輸入「jni」或方法名稱來啟用這項功能。

  • 系統會在原始碼中,將未使用的原生實作函式醒目顯示為警告。缺少實作的 JNI 宣告項目也會醒目顯示為錯誤。

  • 重新命名 (重構) 原生實作函式時,系統會更新所有對應的 JNI 宣告項目。請重新命名 JNI 宣告項目來更新原生實作函式。

  • 檢查隱式繫結 JNI 實作的簽章。

其他 JNI 改善項目

您現在可以在 Android Studio 的程式碼編輯器中享有更流暢的 JNI 開發工作流程,包括使用更完善的類型提示、自動完成、檢查和程式碼重構功能。

適用於原生資料庫的 APK 重新載入功能

現在如果專案中的 APK 在 IDE 外部經過更新,您不必再建立新專案。Android Studio 會偵測 APK 中的變更,並提供重新匯入的選項。

附加只以 Kotlin 編寫的 APK 來源

現在當您分析預先建構的 APK 並進行偵錯時,可以附加只以 Kotlin 編寫的外部 APK 來源。詳情請參閱「附加 Kotlin/Java 來源」。

記憶體分析器中的記憶體流失偵測功能

在記憶體分析器中分析記憶體快照資料時,您現在可以篩選 Android Studio 認為可能表示應用程式中的ActivityFragment例項導致記憶體流失的分析資料。

這項篩選條件會顯示的資料類型包括:

  • 已遭刪除但仍受參照的 Activity 執行個體。
  • 不含有效 FragmentManager 但仍受參照的 Fragment 執行個體。

在某些情況下,這項篩選條件可能會產生誤判結果,例如:

  • Fragment 已完成建立但未曾使用。
  • Fragment 已被快取,但不屬於 FragmentTransaction 的一部分。

如要使用這項功能,請先擷取記憶體快照資料,或將記憶體快照資料檔案匯入Android Studio。如要顯示可能導致記憶體流失的片段和活動,請在記憶體分析器的記憶體快照資料窗格中,勾選「Activity/Fragment Leaks」核取方塊。

分析器:記憶體流失情形偵測功能

篩選記憶體快照資料,掌握記憶體流失情形。

Android Emulator

Android Studio 3.6 版可協助您利用 Android Emulator 29.2.7 以上版本中的多項更新內容,詳情請見下方說明。

改善位置支援功能

Android Emulator 29.2.7 以上版本針對 GPS 座標和路徑資訊模擬功能提供額外支援。現在如果您開啟 Android Emulator 的「Extended controls」功能,「Location」分頁中的選項會列在「Single points」和「Routes」分頁中。

單一點

您可以在「Single points」分頁中使用 Google 地圖 WebView 尋找搜尋點,就像透過手機或瀏覽器使用 Google 地圖一樣。在地圖中搜尋或點選某個地點後,您可以選取地圖底部的「Save point」來儲存這個地點。所有已儲存的地點都會列在「Extended Controls」視窗的右側。

如要將 Android Emulator 的位置設為您在地圖上選取的地點,請按一下「Extended Controls」視窗右下方附近的「Set location」按鈕。

Android Emulator「Extended Controls」中的「Single Points」分頁。

路線

與「Single points」分頁類似,「Routes」分頁會提供 Google 地圖 WebView,可用來在兩個以上的地點之間建立路線。如要建立並儲存路線,請按照下列步驟操作:

  1. 在地圖檢視中,使用文字欄位搜尋路線中的第一個目的地。
  2. 在搜尋結果中選取該地點。
  3. 選取「Navigate」按鈕 Google 地圖中的導航按鈕。
  4. 在地圖上選取路線的起點。
  5. (選用) 點選「Add destination」,在路線中加入其他停靠站。
  6. 在地圖檢視中按一下「Save route」即可儲存路線。
  7. 指定路線名稱,然後按一下「Save」

如要讓 Android Emulator 模擬您儲存的路線,請從「Saved routes」清單中選取這個路線,然後按一下「Extended controls」視窗右下角的「Play route」。如要停止模擬,請按一下「Stop route」

Android Emulator「Extended Controls」中的「Routes」分頁

如要讓 Android Emulator 持續模擬指定路線,請將「Repeat playback」旁邊的切換按鈕設為開啟。如要變更 Android Emulator 模擬指定路線的速度,請從「播放速度」下拉式選單中選取所需選項。

多螢幕支援功能

Android Emulator 現在可讓您將應用程式部署到多個螢幕。這項功能支援可自訂螢幕大小,並協助您測試支援多視窗模式多螢幕的應用程式。在虛擬裝置運作時,您可以新增最多兩個額外的螢幕,步驟如下:

  1. 開啟「Extended controls」並前往「Displays」分頁。
  2. 按一下「Add secondary display」即可新增另一個螢幕。
  3. 在「Secondary displays」下方的下拉式選單中,執行下列其中一項操作:

    1. 選取預設長寬比
    2. 選取「custom」,然後設定自訂螢幕的「height」、「width」和「dpi」
  4. (選用) 按一下「Add secondary display」新增第三個螢幕。

  5. 按一下「Apply changes」,將指定螢幕新增至執行中的虛擬裝置。

在 Android Emulator 擴充控制項的「Display」分頁中新增多個螢幕。

適用於 Android Automotive OS 的全新虛擬裝置和專案範本

現在當您使用 Android Studio 建立新專案時,「Create New Project」精靈的「Automotive」分頁會提供三個範本:「No Activity」、「Media service」和「Messaging service」。如要讓現有專案支援 Android Automotive 裝置,請在選單列中依序選取「File」>「New」>「New Module」,然後選取「Automotive Module」(Automotive 模組)。「Create New Module」精靈會引導您使用其中一個 Android Automotive 專案範本建立新模組。

選取 Android Automotive 專案範本。

此外,您現在可以針對 Android Automotive OS 裝置建立 Android 虛擬裝置 (AVD),方法是在「Virtual Device Configuration」精靈的「Automotive」分頁中選取下列其中一個選項:

  1. Polestar 2:建立模擬 Polestar 2 車用運算主機的 AVD。
  2. Automotive (1024p 橫向):針對一般 1024 x 768 像素的 Android Automotive 車用運算主機建立 AVD。

選取 Android Automotive 虛擬裝置。

支援續傳的 SDK 下載作業

現在使用 SDK Manager 下載 SDK 元件和工具時,Android Studio 可讓您繼續進行先前中斷的下載作業 (例如因網路問題而中斷),而不必重新下載。如要在網路連線不穩定時下載大型檔案 (例如 Android Emulator 或系統映像檔),這項改善功能特別有用。

此外,如果有在背景執行的 SDK 下載工作,您現在可以使用狀態列中的控制項暫停或繼續下載作業。

狀態列顯示背景下載工作,並提供新的控制項讓您暫停或繼續下載作業。

狀態列顯示背景下載工作,並提供新的控制項讓您暫停或繼續下載作業。

Win32 已淘汰

針對 Windows 32 位元版本的 Android Studio,我們將於 2019 年 12 月後停止更新,並於 2020 年 12 月後停止提供支援。您可以繼續使用 Android Studio。不過,如要繼續取得更新,請將工作站升級至 Windows 64 位元版本。

詳情請參閱Windows 32 位元版本淘汰說明網誌

用於最佳化 Gradle 同步處理時間的全新選項

先前版本的 Android Studio 會在 Gradle 同步處理期間擷取所有 Gradle 工作的清單。如果是大型專案,這項工作清單擷取作業可能會導致同步處理速度變慢。

如要提升 Gradle 同步處理作業的效能,請依序前往「File」>「Settings」>「Experimental」,然後選取「Do not build Gradle task list during Gradle sync」。

啟用這個選項後,Android Studio 就不會在同步處理期間建立工作清單,讓 Gradle 同步處理作業能更快完成,同時提升 UI 回應度。請注意,如果 IDE 略過工作清單建立程序,Gradle 面板中的工作清單會不含任何內容,且您將無法使用建構檔案中的工作名稱自動完成功能。

新的 Gradle 離線模式切換位置

如要啟用或停用 Gradle 離線模式,請先從選單列中依序選取「View」>「Tool Windows」>「Gradle」。接著,按一下「Gradle」視窗頂端附近的「Toggle Offline Mode」圖示 Gradle 面板中的 Gradle 離線模式按鈕。

IntelliJ IDEA 2019.2 版

核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA2019.2 版的改善項目。

如要進一步瞭解 2019.2 版包含的其他 IntelliJ 版本改善內容,請參閱以下頁面:

社群貢獻者

感謝曾協助我們找出錯誤和其他 Android Studio 3.6 版改善方式的所有社群貢獻者。我們尤其想感謝以下這些回報錯誤的貢獻者:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • 3.5 版 (2019 年 8 月)

    Android Studio 3.5 版是主要版本,也是 Project Marble 的結果。Project Marble 計畫是從Android Studio 3.3 版開始進行,至今涵蓋多個版本,主要著重於改善 IDE 的三大面向:系統健康狀態功能改善和錯誤修正。

    如要進一步瞭解這些內容和其他 Project Marble 最新消息,請參閱Android 開發人員網誌文章或下方各節。

    我們還想感謝曾為這個版本貢獻心力的所有社群貢獻者

    3.5.3 版 (2019 年 12 月)

    這項次要更新修正了多項錯誤並提升執行效能。

    3.5.2 版 (2019 年 11 月)

    這項次要更新修正了多項錯誤並提升執行效能。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

    3.5.1 版 (2019 年 10 月)

    這項次要更新修正了多項錯誤並提升執行效能。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

    Project Marble:系統健康狀態

    本節說明 Android Studio 3.5 版中旨在改善系統健康狀態的變更內容。

    建議的記憶體設定

    現在如果 Android Studio 偵測到您可以提高 OS 分配給 Android Studio 程序 (例如核心 IDE、Gradle Daemon 和 Kotlin Daemon) 的 RAM 量上限,藉此提升執行效能,就會向您發出通知。您可以點選通知中的動作連結來接受建議的設定,也可以手動調整這些設定,方法是依序選取「File」>「Settings」。如果使用 macOS,則依序選取「Android Studio」>「Preferences」。接著,依序前往「Appearance & Behavior」>「System Settings」的「Memory Settings」部分。詳情請參閱「記憶體快照資料大小上限」。

    關於建議記憶體設定的通知。

    關於建議記憶體設定的通知。

    記憶體用量報表

    有時您很難重現及回報 Android Studio 中的記憶體問題。為協助解決這個問題,Android Studio 可讓您在選單列中依序點選「Help」>「Analyze Memory Usage」來產生記憶體用量報表。如果您選擇這麼做,IDE 會在本機清除資料中的個人資訊,然後再詢問您是否要將資料傳送給 Android Studio 團隊,協助找出記憶體問題的來源。詳情請參閱「執行記憶體用量報表」。

    記憶體用量報表。

    記憶體用量報表。

    Windows:防毒檔案 I/O 最佳化

    Android Studio 現在會自動檢查特定專案目錄是否不在即時防毒掃描範圍內。如果可以進行調整來提升建構效能,Android Studio 會通知您,並提供最佳化防毒軟體設定的操作說明。詳情請參閱「降低防毒軟體對建構速度造成的影響」。

    Project Marble:功能改善

    本節說明 Android Studio 3.5 版中旨在改善現有功能的變更內容。

    套用變更

    「Apply changes」可讓您將程式碼和資源變更推送到執行中的應用程式,而不必重新啟動應用程式,在某些情況下甚至不必重新啟動目前的活動。「Apply changes」導入了保留應用程式狀態的全新方法。與重新編寫 APK 位元碼的「自動執行」不同,「套用變更」會利用 Android 8.0 (API 級別 26) 以上版本支援的執行階段檢測功能,即時重新定義類別。

    詳情請參閱「套用變更」。

    「Apply changes」工具列按鈕。

    「Apply changes」工具列按鈕。

    應用程式部署流程

    IDE 提供新的下拉式選單,可讓您快速選取要部署應用程式的裝置。您還可透過這個選單所包含的新選項,同時在多部裝置上執行應用程式。

    目標裝置下拉式選單。

    目標裝置下拉式選單。

    改善 Gradle 同步處理和快取偵測功能

    IDE 現在可更妥善地偵測 Gradle 為了降低硬碟用量而定期清除版本快取的情形。在先前的版本中,這個狀態會導致 IDE 回報缺少依附元件,並造成 Gradle 同步處理失敗。現在,IDE 會直接視需要下載依附元件,確保 Gradle 同步處理作業能順利完成。

    改善建構錯誤輸出

    「Build」「Build」視窗圖示視窗現在提供更優異的錯誤回報功能,例如點選連結可直接前往回報的錯誤所屬的檔案和行。這類功能適用於下列建構程序:

    • AAPT 編譯和連結
    • R8 和 ProGuard
    • Dex 處理
    • 資源合併
    • XML 檔案分析
    • Javac、Kotlinc 及 CMake 編譯

    專案升級項目

    我們改善了使用者的更新體驗,提供更多相關資訊和操作來協助您更新 IDE 和 Android Gradle 外掛程式。舉例來說,更新時會有更多同步處理和建構錯誤訊息,當中提供相關操作,協助您降低錯誤帶來的影響。

    請注意,您可以只更新 IDE,而不更新 Android Gradle 外掛程式等其他元件。因此,您可以在新版本推出時立即安全地更新 IDE,之後再更新其他元件。

    版面配置編輯器

    Android Studio 3.5 版改善了版面配置的呈現、管理和互動方式。

    使用ConstraintLayout時,「Attributes」面板中新增的「Constraints」部分會列出所選 UI 元件的限制關係。您可以從設計介面或限制清單中選取某個限制,以便在這兩個區域醒目顯示這個限制。

    所選 UI 元素的限制關係。

    所選 UI 元素的限制關係。

    同樣地,現在只要選取所需限制並按下Delete鍵,即可將其刪除。您也可以按住Control鍵 (如果使用 macOS,則按住Command鍵) 並按一下限制錨點來刪除限制。請注意,按住ControlCommand鍵並將滑鼠游標懸停在錨點上時,所有相關聯的限制都會變成紅色,表示可以點選刪除。

    選取某個檢視後,您可以在「Attributes」面板的「Constraint Widget」部分中,點選任一「+」圖示,如下圖所示。現在當您建立新限制時,版面配置編輯器會選取並醒目顯示該限制,方便您立即查看剛剛新增的內容。

    說明如何使用限制小工具建立限制的動畫。

    使用限制小工具建立限制。

    建立限制時,版面配置編輯器現在只會顯示可限制的錨點。在過去,版面配置編輯器會在所有檢視中醒目顯示所有錨點 (無論是否能限制這些錨點)。此外,現在會有一個藍色的重疊元素醒目顯示限制目標。如果您想建立限制的元件與其他元件重疊,這項醒目顯示功能會格外實用。

    說明如何在 Android Studio 3.4 版中為重疊元件建立限制的動畫。

    在 Android Studio 3.4 版中為重疊元件建立限制。

    說明如何在 Android Studio 3.5 版中為重疊元件建立限制的動畫。

    在 Android Studio 3.5 版中為重疊元件建立限制。

    除了上述更新,Android Studio 3.5 版的版面配置編輯器還提供下列改善內容:

    • 「Constraint Widget」和預設邊界下拉式選單現在可讓您使用邊界的尺寸資源。
    • 在版面配置編輯器工具列中,用於決定設計介面大小的裝置清單已經更新。此外,調整大小時的貼齊行為也有所改善,且設計介面現在一律會顯示大小調整控點。調整大小時會有新的重疊元素顯示常用裝置大小。
    • 版面配置編輯器提供新的色彩配置,可提高一致性並降低不同元件、文字和限制之間的對比。
    • 過去某些元件無法顯示文字,而現在藍色模式針對這類元件提供文字支援。

    如要進一步瞭解這些變更,請參閱「Android Studio Project Marble:版面配置編輯器」。

    資料繫結

    除了為資料繫結新增漸進式註解處理支援功能之外,IDE 也改善了在 XML 建立資料繫結運算式時的智慧編輯器功能和效能。

    呈現 Android Studio 3.4 版中程式碼編輯器效能的動畫。

    Android Studio 3.4 版中的程式碼編輯器效能。

    呈現 Android Studio 3.5 版中程式碼編輯器效能的動畫。

    Android Studio 3.5 版中的程式碼編輯器效能更為優異。

    改善 C/C++ 專案支援功能

    Android Studio 3.5 版包含幾項變更,改善了 C/C++ 專案的支援功能。

    關於單一變數同步處理作業的「Build Variants」面板改善項目

    您現在可以在「Build Variants」面板中指定有效的建構變數和 ABI。這項功能可簡化各個模組的建構設定,同時提升 Gradle 同步處理作業的效能。

    詳情請參閱變更建構變數

    「Build Variants」面板顯示 ABI 的單一變數選取項目。

    「Build Variants」面板顯示 ABI 的單一變數選取項目。

    並行使用多個 NDK 版本

    您現在可以並行使用多個 NDK 版本。這項功能可讓您在設定專案時享有更多彈性。舉例來說,如果您的專案在同一部機器上使用不同版本的 NDK,這項功能就會很實用。

    如果專案使用 Android Gradle 外掛程式 3.5.0 以上版本,您也可以指定專案中每個模組應使用的 NDK 版本。您可以使用這項功能建立可重現的建構作業,並減少 NDK 版本和 Android Gradle 外掛程式不相容的問題。

    詳情請參閱安裝及設定 NDK、CMake 和 LLDB

    支援 Chrome OS

    Android Studio 現在正式支援 Chrome OS 裝置,例如 HP Chromebook x360 14、Acer Chromebook 13/Spin 13 等,詳情請參閱「系統需求」。請先在相容的 Chrome OS 裝置上下載 Android Studio,然後按照安裝指示操作。

    功能模組的條件式提供功能

    條件式提供功能可讓您設定特定裝置設定需求,讓系統在符合條件的情況下,於安裝應用程式時自動下載功能模組。舉例來說,您可以設定提供擴增實境 (AR) 功能的功能模組,並讓系統只在裝置支援 AR 的情況下,於安裝應用程式時下載該功能模組。

    這項提供機制目前可讓您根據下列裝置設定,控制應用程式安裝時的模組下載行為:

    • 裝置硬體和軟體特性,包括 OpenGL ES 版本
    • 使用者的國家/地區
    • API 級別

    如果裝置不符合您指定的所有需求條件,系統就不會在安裝應用程式時下載這個模組。不過,應用程式之後可要求使用 Play Core 程式庫隨選下載模組。詳情請參閱「設定條件式提供功能」。

    IntelliJ IDEA 2019.1 版

    核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA2019.1 版的改善項目,例如主題自訂功能。

    Android Studio 隨附的最後一個 IntelliJ 版本為 2018.3.4 版。如要進一步瞭解這個 Android Studio 版本包含的其他 IntelliJ 版本改善內容,請參閱下列錯誤修正最新資訊:

    Android Gradle 外掛程式 3.5.0 版更新

    如要瞭解 Android Gradle 外掛程式 3.5.0 版的新功能 (例如對於漸進式註解處理和可快取單元測試的進一步支援),請參閱版本資訊

    社群貢獻者

    感謝曾協助我們找出錯誤和其他 Android Studio 3.5 版改善方式的所有社群貢獻者。我們尤其想感謝以下這些回報 P0 和 P1 錯誤的貢獻者:

    3.4 版 (2019 年 4 月)

    Android Studio 3.4 版是主要版本,其中包含多項新功能和改善項目。

    3.4.2 版 (2019 年 7 月)

    這項次要更新修正了多項錯誤並提升執行效能。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

    3.4.1 版 (2019 年 5 月)

    這項次要更新修正了多項錯誤並提升執行效能。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

    3.4.0 版已知問題

    • 將應用程式部署至搭載 Android Q Beta 版的裝置時,系統會停用分析功能。

    • 使用資料繫結程式庫時,LiveDataListener.onChanged() 可能會因 NPE 執行失敗。Android Studio 3.4.1 版會修正這個問題,且目前 Android Studio 3.5預先發布版已包含相關修正檔。詳情請參閱問題 #122066788

    IntelliJ IDEA 2018.3.4 版

    核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA2018.3.4 版的改善項目。

    Android Gradle 外掛程式 3.4.0 版更新

    如要瞭解 Android Gradle 外掛程式 3.4.0 版的新功能,請參閱「版本資訊」。

    全新「Project Structure」對話方塊

    全新的「Project Structure」對話方塊 (PSD) 可讓您輕鬆更新依附元件及設定專案的各個面向,例如模組、建構變數、簽署設定及建構變化版本。

    如要開啟 PSD,可以從選單列中依序選取「File」>「Project Structure」,也可以在 Windows 和 Linux 上按下Ctrl+Shift+Alt+S鍵,或在 macOS 上按下Command+;(分號) 鍵。以下說明 PSD 的一些全新和更新部分。

    變數

    PSD 新增的變數部分可讓您建立及管理建構變數,例如用於讓專案依附元件的版本號碼保持一致的變數。

    • 快速查看及編輯專案 Gradle 建構指令碼中現有的建構變數。
    • 直接透過 PSD 新增專案或模組層級的建構變數。

    模組

    您可以透過「Modules」部分,設定要套用至現有模組中所有建構變數的屬性,或是在專案中新增模組。舉例來說,您可以在這裡設定defaultConfig屬性或管理簽署設定。

    依附元件

    您可以檢查及視覺化呈現專案依附元件圖表中的各個依附元件 (依據 Gradle 在專案同步處理作業期間所解析的結果),步驟如下:

    1. 在 PSD 的左側窗格中選取「Dependencies」
    2. 在「Modules」窗格中,選取要檢查所解析依附元件的模組。
    3. 在 PSD 的右側,開啟「Resolved Dependencies」窗格,如下所示。

    您也可以快速搜尋依附元件並新增至專案中,方法是先從 PSD 的「Dependencies」部分選取模組,在「Declared Dependencies」部分中按一下「+」按鈕,然後選取要新增的依附元件類型。

    視您選取的依附元件類型而定,畫面上應該會顯示如下的對話方塊,協助您將依附元件新增至模組。

    建構變數

    在 PSD 的這個部分,您可以為專案中的各個模組建立及設定建構變數和變種版本,還可新增資訊清單預留位置和 ProGuard 檔案,以及指派簽署金鑰等。

    建議

    「建議」部分會顯示專案依附元件和建構變數更新建議,如下所示。

    全新資源管理工具

    資源管理工具是新推出的工具視窗,可讓您在應用程式中匯入、建立、管理和使用資源。您可以在選單列中依序選取「View」>「Tool Windows」>「Resource Manager」開啟這個工具視窗。資源管理員可讓您執行下列操作:

    • 以視覺化方式呈現資源:您可以預覽可繪項目、顏色和版面配置,迅速找出所需資源。
    • 大量匯入:您可以一次匯入多個可繪資產,方法是將資產拖曳至「Resource Manager」工具視窗中,或是使用「Import drawables」精靈。如要使用這個精靈,請選取工具視窗左上角的「+」按鈕,然後從下拉式選單中選取「Import drawables」
    • 將 SVG 轉換為VectorDrawable物件:您可以使用「Import drawables」精靈,將 SVG 圖片轉換為 VectorDrawable 物件。
    • 拖曳資產:在「Resource Manager」工具視窗中,您可以將可繪項目拖曳到版面配置編輯器的設計和 XML 檢視區塊中。
    • 查看替代版本:現在只要在「Tools」視窗中對某個資源按兩下,即可查看這個資源的替代版本。這個檢視會顯示您已建立的各個版本,以及所包含的限定詞。
    • 圖塊和清單檢視:您可以在工具視窗中變更檢視,以不同的編排方式呈現資源。

    詳情請參閱管理應用程式資源指南。

    在分析 APK 和進行偵錯時查看建構 ID

    為 APK 中的.so共用資料庫提供偵錯符號檔案時,Android Studio 會確認所提供符號檔案的版本 ID 是否與 APK 中.so資料庫的版本 ID 相符。

    如果您在 APK 中使用版本 ID 建構原生資料庫,Android Studio 會檢查符號檔案中的版本 ID 與原生資料庫的版本 ID 是否一致,假如不一致,就會拒絕符號檔案。如果您並未使用版本 ID 進行建構,提供錯誤的符號檔案可能會導致偵錯時發生問題。

    預設啟用 R8

    R8 將脫糖、縮減、模糊化、最佳化以及 DEX 處理整合為單一步驟,結果讓建構效能獲得大幅提升。R8 是在 Android Gradle 外掛程式 3.3.0 版導入,現在預設會為使用外掛程式 3.4.0 以上版本的應用程式和 Android 程式庫專案啟用。

    下圖概略說明導入 R8 之前的編譯程序。

    在導入 R8 之前,ProGuard 是與 dex 和脫糖不同的編譯步驟。

    現在有了 R8,脫糖、縮減、去模糊化、最佳化和 dex 處理 (D8) 全都可透過單一步驟完成,如下圖所示。

    透過 R8,您只要執行一個編譯步驟,就能進行脫糖、縮減、模糊化、最佳化和 dex 處理。

    提醒您,R8 能夠與現有 ProGuard 規則搭配運作,因此您可能不需要採取任何行動就能享有 R8 的好處。不過,由於這與專為 Android 專案設計的 ProGuard 是不同的技術,因此在進行縮減和最佳化時,可能會導致原先 ProGuard 不會移除的程式碼遭到移除。在這類罕見情況下,您可能得新增額外規則,讓建構輸出內容保留該程式碼。

    如果您在使用 R8 時遇到問題,請參閱R8 相容性常見問題,看看是否有該問題的解決方案。如果當中沒有提供解決方案,請回報錯誤。您可以在專案的gradle.properties檔案中加入下列其中一行程式碼來停用 R8:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    

    凡是導覽元件支援的引數類型,現在全都可在導覽編輯器中使用。如要進一步瞭解支援的類型,請參閱「在目的地之間傳遞資料」。

    版面配置編輯器改善項目

    版面配置編輯器中的「Attributes」窗格已簡化為單一頁面,當中的各個區塊在展開後會顯示可設定的屬性。「Attributes」窗格還包含下列更新內容:

    • 新的「Declared Attributes」部分會列出版面配置檔案指定的屬性,還可讓您快速新增屬性。
    • 「Attributes」窗格現在還會在各項屬性旁邊顯示指標。如果屬性的值為資源參照,該指標會呈現填滿狀態;如果不是資源參照,則指標會呈現空白狀態
    • 有錯誤或警告的屬性現在會醒目顯示。紅色的醒目顯示部分表示錯誤 (例如使用無效的版面配置值),橘色的醒目顯示部分表示警告 (例如使用硬式編碼值)。

    可快速匯入依附元件的全新意圖動作

    開始在程式碼中使用特定 Jetpack 和 Firebase 類別時,如果您尚未在專案中新增必要的 Gradle 程式庫依附元件,新的意圖動作會建議您執行這項操作。舉例來說,如果您要參照WorkManager類別,但並未先匯入必要的android.arch.work:work-runtime依附元件,意圖動作可讓您按一下就輕鬆完成匯入作業,如下所示。

    特別要提的是,由於 Jetpack 會將支援程式庫重新包裝成獨立套件,以便進行管理和更新,因此這項意圖動作可協助您為要使用的 Jetpack 元件快速新增必要依附元件,而不會一併新增其他依附元件。

    3.3 版 (2019 年 1 月)

    Android Studio 3.3 版是主要版本,其中包含多項新功能和改善項目。

    3.3.2 版 (2019 年 3 月)

    這項次要更新修正了多項錯誤並提升執行效能。如要查看重要錯誤修正清單,請參閱版本更新網誌上的相關文章。

    3.3.1 版 (2019 年 2 月)

    這項次要更新修正了多項錯誤並提升執行效能。

    IntelliJ IDEA 2018.2.2 版

    核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA2018.2.2 版的改善項目。

    Android Gradle 外掛程式更新

    如要瞭解 Android Gradle 外掛程式的新功能,請參閱版本資訊

    在導覽編輯器中,您可以使用導覽架構元件視覺化呈現及建構應用程式導覽機制。

    詳情請參閱使用導覽架構元件實作導覽機制

    刪除未使用的 Android Studio 目錄

    首次執行主要版本的 Android Studio 時,系統會針對找不到對應安裝項目的 Android Studio 版本,尋找包含其快取、設定、索引和記錄的目錄。「Delete Unused Android Studio Directories」對話方塊會顯示這些未使用目錄的位置、大小和上次修改時間,並提供刪除目錄的選項。

    下列是 Android Studio 會考慮刪除的目錄:

    • Linux:~/.AndroidStudio[Preview]_X.Y_
    • Mac:~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_
    • Windows:%USER%\.AndroidStudio[Preview]_X.Y_

    Lint 改善項目

    透過 Gradle 叫用時,Lint 的速度會顯著提升。如果是較大型的專案,Lint 的執行速度應可快上四倍。

    「Create New Project」精靈

    「Create New Project」精靈不但外觀經過重新設計,而且包含多項更新,可協助您簡化新 Android Studio 專案的建立流程。

    詳情請參閱「建立專案」。

    分析器更新

    Android Studio 3.3 版更新了多種個別分析器。

    效能提升

    根據使用者的意見回饋,使用分析器時的轉譯效能已大幅提升。請繼續向我們提供意見,尤其是持續遇到效能問題時。

    分析器記憶體配置追蹤選項

    為了在分析時提升應用程式效能,記憶體分析器現在預設會定期對記憶體配置進行取樣。如有需要,您可以在搭載 Android 8.0 (API 級別 26) 以上版本的裝置上進行測試時,使用「Allocation Tracking」下拉式選單變更這項行為。

    使用「Allocation Tracking」下拉式選單時,您可以選擇下列模式:

    • 完整:擷取所有物件記憶體配置。請注意,如果您的應用程式會分配大量物件,則可能會在分析時發生顯著的效能問題。
    • Sampled:定期擷取物件記憶體配置的樣本。這是預設行為,而且在分析時對應用程式效能的影響較小。如果應用程式在短時間內分配大量物件,則可能會遇到效能問題。
    • 關閉:關閉記憶體配置功能。如果尚未選取,系統會在擷取 CPU 記錄時自動啟用這個模式,並在記錄完成時重新採用先前的設定。您可以在 CPU 記錄設定對話方塊中變更這項行為。

      追蹤功能會影響 Java 物件和 JNI 參照。

    檢查畫格轉譯資料

    CPU 分析器中,您現在可以檢查 Java 應用程式在主要 UI 執行緒和 RenderThread 上轉譯每個畫格所需的時間。如要調查造成 UI 資源浪費和畫格速率低落的瓶頸,這項資料可能會有幫助。舉例來說,如要維持流暢的畫格速率,畫格必須在 16 毫秒內轉譯完成,而只要畫格所需的轉譯時間超過這個值,就會以紅色顯示。

    如要查看畫格轉譯資料,請使用可讓您追蹤系統呼叫的設定記錄追蹤記錄。記錄追蹤記錄後,請在「FRAMES」部分底下,查看記錄時間軸上各個畫格的相關資訊,如下所示。

    如要進一步瞭解如何調查並修正畫格速率問題,請參閱「轉譯速度緩慢」。

    事件時間軸中的片段

    事件時間軸現在會顯示附加和卸離片段的情形。此外,將滑鼠游標懸停在片段上時,畫面上會顯示說明片段狀態的工具提示。

    在網路分析器中查看連線酬載的格式化文字

    網路分析器原先只會顯示連線酬載的原始文字,但 Android Studio 3.3 版現在預設會將特定文字類型格式化,包括 JSON、XML 和 HTML。在「Response」和「Request」分頁中,點選「View Parsed」連結可顯示經過格式化的文字,點選「View Source」連結則可顯示原始文字。

    詳情請參閱「使用網路分析器檢查網路流量」。

    自動下載 SDK 元件

    如果您的專案需要 SDK 平台 (NDK 或 CMake) 的 SDK 元件,現在只要您已使用 SDK Manager 接受任何相關授權協議,Gradle 就會嘗試自動下載必要套件。

    詳情請參閱「使用 Gradle 自動下載缺少的套件」。

    支援 Clang-Tidy

    Android Studio 現在支援針對包含原生程式碼的專案使用 Clang-Tidy 進行靜態程式碼分析。如要啟用 Clang-Tidy 支援功能,請將 NDK 更新至 r18 以上版本。

    更新完成後,您可以啟用或重新啟用檢查功能,方法是開啟「Settings」或「Preferences」對話方塊,然後依序前往「Editor」>「Inspections」>「C/C++」>「General」>「Clang-Tidy」。在「Settings」或「Preferences」對話方塊中選取這項檢查功能時,您還可在最右側面板的「Option」部分底下,查看已啟用和停用的 Clang-Tidy 檢查項目清單。如要啟用其他檢查項目,請將其新增至清單中,然後按一下「Apply」

    如要為 Clang-Tidy 設定其他選項,請點選「Configure Clang-Tidy Checks Options」,然後在隨即開啟的對話方塊中新增這些選項。

    移除 C++ 自訂選項

    下列選項已從「Customize C++ Support」對話方塊中移除:

    • 例外狀況支援 (-fexceptions)
    • 執行階段類型資訊支援 (-ftti)

    透過 Android Studio 建立的所有專案皆已啟用各個選項的行為。

    CMake 3.10.2 版

    CMake 3.10.2 版現在提供 SDK Manager。請注意,Gradle 預設仍會使用 3.6.0 版。

    如要為 Gradle 指定要使用的 CMake 版本,請在模組的build.gradle檔案中加入以下內容:

    android {
        ...
        externalNativeBuild {
            cmake {
                ...
                version "3.10.2"
            }
        }
    }
    

    想進一步瞭解如何在build.gradle中設定 CMake,請參閱「手動設定 Gradle」。

    用於指定最低 CMake 版本的全新「+」語法

    在主要模組的build.gradle檔案中指定 CMake 版本時,您現在可以附加「+」來比對 CMakecmake_minimum_required()指令的行為。

    Android App Bundle 現在支援免安裝應用程式

    Android Studio 現在可讓您建構完整支援Google Play 免安裝技術的Android App Bundle。也就是說,您現在可以在單一 Android Studio 專案中建構及部署安裝版應用程式和免安裝應用程式,並將兩者納入單一 Android App Bundle。

    如果要使用「Create New Project」對話方塊建立新的 Android Studio 專案,請務必在「Configure your project」部分中,勾選「This project will support instant apps」旁邊的方塊。接著 Android Studio 會照常建立新的應用程式專案,但在資訊清單中加入下列屬性,為應用程式的基礎模組新增免安裝應用程式支援:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    

    接下來,您可以建立免安裝即用功能模組,方法是從選單列中依序選取「File」>「New」>「New Module」,然後在「Create New Module」對話方塊中選取「Instant Dynamic Feature Module」。請注意,建立這個模組也會將應用程式的基礎模組設為能夠免安裝即用。

    如要將應用程式以免安裝形式部署至本機裝置,請編輯執行設定,並在「General」部分中,勾選「Deploy as instant app」旁邊的方塊。

    單一變化版本專案同步處理

    如要讓 Android Studio 瞭解專案結構,將專案與建構設定保持同步是相當重要的步驟。不過,對大型專案而言,這項程序可能相當耗時。如果專案使用多個建構變數,您現在可以只同步處理目前所選的變數,藉此最佳化專案同步處理作業。

    如要啟用這項最佳化功能,您必須使用 Android Studio 3.3 以上版本和 Android Gradle 外掛程式 3.3.0 以上版本。假如您符合這些需求條件,IDE 會在您同步處理專案時提示您啟用這項最佳化功能。此外,新專案也會預設啟用這項最佳化功能。

    如要手動啟用這項最佳化功能,請依序點選「File」>「Settings」>「Experimental」>「Gradle」。如果使用 Mac,則依序點選「Android Studio」>「Preferences」>「Experimental」>「Gradle」。接著,勾選「Only sync the active variant」核取方塊。

    詳情請參閱啟用單一變化版本專案同步處理功能

    快速提供意見

    如果您選擇提供使用統計資料來協助改善 Android Studio,IDE 視窗底部的狀態列會顯示以下兩個新圖示:

    只要按一下最能反映您目前 IDE 使用體驗的圖示即可。點選圖示後,IDE 會傳送使用統計資料,讓 Android Studio 團隊進一步瞭解您的感受。在某些情況下 (例如,如果您反映 IDE 使用體驗不佳),您將有機會提供額外的意見回饋。

    如果尚未選擇提供使用統計資料,您可以啟用這項設定。首先開啟「Settings」對話方塊 (在 Mac 上則是開啟「Preferences」對話方塊),接著依序前往「Appearance & Behavior」>「System Settings」>「Data Sharing」,然後勾選「Send usage statistics to Google」

    3.2 版 (2018 年 9 月)

    Android Studio 3.2 版是主要版本,其中包含多項新功能和改善項目。

    3.2.1 版 (2018 年 10 月)

    這個 Android Studio 3.2 版的更新版本包含下列變更和修正項目:

    • 現在隨附的 Kotlin 版本為 1.2.71 版。
    • 預設的建構工具版本為 28.0.3 版。
    • 在導覽程式庫中,引數類型的名稱已從type改為 argType
    • 這個版本修正了下列錯誤:
      • 使用資料繫結程式庫時,含底線的變數名稱會導致編譯錯誤。
      • CMake 導致 IntelliSense 和其他 CLion 功能無法運作。
      • 新增SliceProvider會導致未使用androidx.*程式庫的專案發生編譯錯誤。
      • 部分 Kotlin 單元測試並未執行。
      • 資料繫結相關問題造成PsiInvalidElementAccessException
      • <merge>元素有時會導致版面配置編輯器異常終止。

    3.2.0 版已知問題

    附註:Android Studio 3.2.1 版已解決這些問題。

    • 強烈建議您不要使用 Kotlin 1.2.70 版。

      Kotlin 1.2.61 版修正了可能導致 Android Studio 沒有回應的錯誤,但Kotlin 1.2.70 未包含這個修正檔

      不過,Kotlin 1.2.71 以上版本皆包含這個修正檔。

    • 雖然在renderscriptSupportModeEnabled設為true的情況下使用 Android Gradle 外掛程式 3.2.0 版時,您通常不需要指定建構工具版本,但仍必須在各個模組的build.gradle檔案中加入以下內容:

      android.buildToolsVersion "28.0.3"

    新功能小幫手

    新推出的小幫手會通知您 Android Studio 中的最新異動。

    如果系統在安裝或更新完 Android Studio 後偵測到有可顯示的新資訊,就會在您啟動 Android Studio 時開啟新功能小幫手。您也可以依序選擇「Help」>「What's new in Android Studio」開啟這個小幫手。

    Android Jetpack

    Android Jetpack 提供相關元件、工具和指南,可讓您不必花費心力執行重複性質的工作,進而加快 Android 開發作業速度,輕鬆快速地建構可測試的優質應用程式。Android Studio 包含下列更新內容以支援 Jetpack。詳情請參閱 Jetpack 說明文件

    新的導覽編輯器已與 Android Jetpack 的瀏覽元件整合,提供用於建立應用程式導覽結構的圖形檢視。導覽編輯器簡化了應用程式內目的地導覽機制的設計與實作方式。

    在 Android Studio 3.2 版中,導覽編輯器是一項實驗功能。如要啟用導覽編輯器,請依序點選「File」>「Settings」(在 Mac 上則是依序點選「Android Studio」>「Preferences」),接著在左側窗格中選取「Experimental」類別,勾選「Enable Navigation Editor」旁邊的方塊,然後重新啟動 Android Studio。

    詳情請參閱導覽編輯器說明文件

    AndroidX 遷移

    為了配合 Jetpack,我們會將 Android 支援程式庫遷移至使用 androidx 命名空間的新 Android 擴充功能程式庫。詳情請參閱 AndroidX 總覽

    Android Studio 3.2 版提供全新的遷移功能,協助您完成這項程序。

    如要將現有專案遷移至 AndroidX,請依序選擇「Refactor」>「Migrate to AndroidX」。如有任何 Maven 依附元件尚未遷移至 AndroidX 命名空間,Android Studio 建構系統也會自動轉換這些專案依附元件。

    Android Gradle 外掛程式提供下列兩種可在gradle.properties檔案中設定的通用標記:

    • android.useAndroidX:設為true時,這個標記表示您要立即開始使用 AndroidX。如果沒有這個標記,Android Studio 會假設標記是設為false並據此運作。
    • android.enableJetifier:設為true時,這個標記表示您希望透過 Android Gradle 外掛程式的工具支援,自動轉換現有的第三方程式庫,如同這些程式庫是為 AndroidX 所編寫一樣。如果沒有這個標記,Android Studio 會假設標記是設為false並據此運作。

    如果您使用「遷移至 AndroidX」指令,這兩個標記都會設為true

    如果想立即開始使用 AndroidX 程式庫,而不必轉換現有的第三方程式庫,您可以將android.useAndroidX標記設為true,並將android.enableJetifier標記設為false

    Android App Bundle

    「Android App Bundle」是新型上傳格式,當中包含應用程式的所有已編譯程式碼和資源。採用這種上傳格式時,APK 產生和簽署作業是在 Google Play 商店處理。

    上傳完畢後,Google Play 全新的應用程式提供模型會使用應用程式套件,根據各個使用者的裝置設定產生並提供經過最佳化的 APK,讓使用者只下載執行應用程式所需的程式碼和資源。您不必再建構、簽署和管理多個 APK,而且使用者下載的內容不但檔案較小,還會經過最佳化。

    此外,您可以在應用程式專案中新增功能模組,並將這些模組加入應用程式套件中。這樣一來,使用者就能視需求下載及安裝應用程式的功能。

    如要建立套件,請依序選擇「Build」>「Build Bundle(s) / APK(s)」>「Build Bundle(s)」

    如要瞭解詳情 (包括建立及分析 Android App Bundle 的操作說明),請參閱Android App Bundle

    版面配置編輯器中的範例資料

    許多 Android 版面配置都包含執行階段資料,這些資料可能會導致您在應用程式開發作業的設計階段,難以視覺化呈現版面配置的外觀和風格。現在您可以透過填滿範例資料的版面配置編輯器輕鬆預覽檢視區塊。當您新增檢視區塊後,「Design」視窗中的檢視區塊下方會顯示 按鈕。按一下這個按鈕即可設定設計階段的檢視區塊屬性。您可以從多種範例程式範本中進行選擇,並指定要用於填入檢視區塊的範例項目數量。

    如要試用範例資料,請在新的版面配置中加入RecyclerView,按一下檢視區塊下方的設計階段屬性按鈕 ,然後從範例資料範本的輪轉介面中選擇所需選項。

    Slice

    「Slice」可讓您透過新的方式,在其他 Android 使用者介面中加入應用程式的部分功能。舉例來說,只要使用 Slice,就能在 Google 搜尋建議中顯示應用程式功能和內容。

    Android Studio 3.2 版內建相關範本,讓您利用新的 Slice Provider API 擴充應用程式,同時也提供新的 Lint 檢查項目,確保您採用最佳做法建構 Slice。

    如要使用這項功能,請先在專案資料夾上按一下滑鼠右鍵,然後依序選擇「New」>「Other」>「Slice Provider」

    如要瞭解詳情 (包括如何測試 Slice 互動情形),請參閱Slies 入門指南

    Kotlin 1.2.61 版

    Android Studio 3.2 版隨附 Kotlin 1.2.61 版,而新的 Android SDK 也與 Kotlin 進一步整合。詳情請參閱Android 開發人員網誌

    IntelliJ IDEA 2018.1.6 版

    核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA2018.1.6 版的改善項目。

    Android 分析器

    在 Android Studio 3.2 版中試用下列Android 分析器新功能。

    工作階段

    您現在可將分析器資料儲存為工作階段,以便日後回顧及檢查。在您重新啟動 IDE 之前,分析器會保留工作階段資料。

    當您記錄方法追蹤記錄擷取記憶體快照資料時,IDE 會將資料 (連同應用程式的網路活動) 新增為目前工作階段的個別項目,且您可以輕鬆切換不同記錄來比較資料。

    系統追蹤

    您可以在CPU 分析器中,選取新的「系統追蹤」設定來檢查裝置的系統 CPU 和執行緒活動。這項追蹤記錄設定是以systrace為基礎,適合用來調查系統層級的問題,例如 UI 資源浪費問題。

    使用這項追蹤記錄設定時,您可以透過原生追蹤 API檢測 C/C++ 程式碼,或透過Trace類別檢測 Java 程式碼,在分析器時間軸中標示重要的程式碼常式。

    在記憶體分析器中檢查 JNI 參照

    如果您將應用程式部署至搭載 Android 8.0 (API 級別 26) 以上版本的裝置,現在可以使用記憶體分析器檢查應用程式的 JNI 程式碼配置情形。

    在應用程式執行期間,選取您要檢查的時間軸部分,然後從類別清單上方的下拉式選單中選取「JNI heap」,如下所示。接著,您可以照常檢查記憶體快照資料中的物件,並在「Allocation Call Stack」分頁中按兩下物件,查看 JNI 參照在程式碼中的配置和發布位置。

    匯入、匯出及檢查記憶體快照資料檔案

    您現在可以匯入、匯出及檢查透過記憶體分析器建立的.hprof記憶體快照資料檔案。

    如要匯入.hprof檔案,請在分析器的「Sessions」窗格中按一下「Start new profiler session」圖示,然後選取「Load from file」。接著,您可以像處理其他記憶體快照資料一樣,在記憶體分析器中檢查相關資料。

    如要儲存記憶體快照資料以便日後查看,請在「Sessions」窗格中使用「Heap Dump」項目右側的「Export Heap Dump」按鈕。在隨即顯示的「Export As」對話方塊中,使用.hprof副檔名儲存檔案。

    在應用程式啟動時記錄 CPU 活動

    您現在可以在應用程式啟動時記錄 CPU 活動,方法如下:

    1. 從主選單中依序選取「Run」>「Edit Configurations」
    2. 在所需執行設定的「Profiling」分頁中,勾選「Start recording a method trace on startup」旁邊的方塊。
    3. 從下拉式選單中選取要使用的 CPU 記錄設定。
    4. 依序選取「Run」>「Profile」,將應用程式部署至搭載 Android 8.0 (API 級別 26) 以上版本的裝置。

    匯出 CPU 追蹤記錄

    使用 CPU 分析器記錄 CPU 活動後,您可以將資料匯出為.trace檔案,以便與他人分享或日後檢查。

    如要在記錄 CPU 活動後匯出追蹤記錄,請按照下列步驟操作:

    1. 在想要從 CPU 時間軸匯出的記錄上按一下滑鼠右鍵。
    2. 從下拉式選單中選取「Export trace」
    3. 前往要儲存檔案的位置,然後按一下「Save」

    匯入及檢查 CPU 追蹤記錄檔案

    您現在可以匯入及檢查透過Debug APICPU 分析器建立的.trace檔案。不過,目前您無法匯入系統追蹤記錄。

    如要匯入追蹤記錄檔案,請在分析器的「Sessions」窗格中按一下「Start new profiler session」圖示 ,然後選取「Load from file」。接著,您可以照常在 CPU 分析器中檢查相關資料,只不過會有以下幾點差異:

    • CPU 時間軸不會呈現 CPU 活動。
    • 執行緒活動時間軸只會表示各個執行緒有可用追蹤記錄資料的情形,而不會反映執行緒的實際狀態 (例如執行中、等待中或休眠中)。

    使用 Debug API 記錄 CPU 活動

    您現在可以使用Debug API檢測應用程式,在 CPU 分析器中開始和停止記錄 CPU 活動。將應用程式部署至裝置後,分析器會在應用程式呼叫 startMethodTracing(String tracePath)時自動開始記錄 CPU 活動,並在應用程式呼叫stopMethodTracing()時停止記錄。在記錄透過這個 API 觸發的 CPU 活動時,CPU 分析器會將Debug API顯示為所選 CPU 記錄設定。

    能源分析器

    能源分析器會以視覺化方式呈現應用程式的預估能源用量,以及影響能源用量的系統事件,例如 Wake Lock、鬧鐘和工作。

    當您在搭載 Android 8.0 (API 26) 以上版本的已連結裝置或 Android Emulator 上執行應用程式時,能源分析器會在「Profiler」視窗底部顯示為新的一列。

    按一下「Energy」列即可放大能源分析器檢視畫面。您可以將滑鼠游標移到時間軸中的長條上,查看 CPU、網路和定位 (GPS) 資源的能源用量細分資料,以及相關系統事件。

    「Energy」時間軸底下的「System」時間軸中會標示影響能源用量的系統事件。如果您在「Energy」時間軸中選取特定時間範圍,事件窗格會顯示該時間範圍內的系統事件詳細資料。

    如要查看喚醒鎖定等系統事件的呼叫堆疊和其他詳細資料,請在事件窗格中選取該事件。如要前往導致發生系統事件的程式碼,請按兩下呼叫堆疊中的相關項目。

    Lint 檢查功能

    Android Studio 3.2 版提供許多有關Lint 檢查的新功能和改善項目。

    新的 Lint 檢查功能可協助您找出常見的程式碼問題,包括潛在可用性問題的相關警告,以及可能會造成安全漏洞、必須優先處理的錯誤。

    Java/Kotlin 互通性的 Lint 檢查功能

    為了確保您的 Java 程式碼能與 Kotlin 程式碼互通,新的 lint 檢查項目會強制採用Kotlin 互通性指南中所述的最佳做法,例如檢查是否包含「是否可為空值」註解、注意是否使用了 Kotlin 硬式關鍵字,以及將 lambda 參數放到最後。

    如要啟用這類檢查功能,請依序點選「File」>「Settings」(在 Mac 上則是依序點選「Android Studio」>「Preferences」) 以開啟「Settings」對話方塊,接著依序前往「Editor」>「Inspections」>「Android」>「Lint」>「Interoperability」>「Kotlin Interoperability」,然後選取要啟用的規則。

    如要為指令列建構作業啟用這類檢查功能,請在 build.gradle 檔案中加入以下內容:

    android {
        lintOptions {
            check 'Interoperability'
        }
    }
    

    Slice 的 Lint 檢查功能

    針對 Slice 新推出的 Lint 檢查功能可確保您採用正確的方式建構 Slice。舉例來說,如果您尚未將主要動作指派給 Slice,Lint 檢查功能就會發出警告。

    全新 Gradle 目標

    您可以使用新的lintFixGradle 工作,將 lint 檢查功能建議的所有「安全」修正方式直接套用至原始碼。舉例來說,lint 檢查功能可能會建議您套用SyntheticAccessor安全修正方式。

    中繼資料更新

    我們針對 Lint 檢查功能更新了多項中繼資料 (例如服務層級轉換檢查),讓這些中繼資料支援 Android 9 (API 級別 28)。

    在針對新的變化版本執行 Lint 時發出警告

    Lint 現在會記錄用於記錄的基準變化版本與版本,且如果您不是針對用於建立的基準變化版本執行 Lint,就會向您發出警告。

    改善現有的 Lint 檢查功能

    Android Studio 3.2 版對現有的 Lint 檢查功能進行了諸多改善。舉例來說,資源週期檢查現在適用於其他資源類型,轉譯偵測器也能在編輯器中即時找到缺少的轉譯內容。

    現在更容易找到問題 ID

    問題 ID 現在會顯示在包括「Inspection Results」視窗在內的更多位置。這可讓您輕鬆找到所需資訊,以便在 build.gradle 中透過lintOptions 啟用或停用特定檢查功能。

    詳情請參閱「使用 Gradle 設定 lint 選項」。

    資料繫結 V2

    資料繫結 V2 現在會預設啟用,並且與 V1 相容。也就是說,如果您有透過 V1 編譯的程式庫依附元件,就可以將其與採用資料繫結 V2 的專案搭配使用。不過請注意,採用 V1 的專案無法使用透過 V2 編譯的依附元件。

    D8 脫糖程序

    在 Android Studio 3.1 版中,我們將脫糖步驟做為實驗功能整合至 D8 工具,藉此減少整體建構時間。而在 Android Studio 3.2 版中,D8 脫糖程序會預設開啟。

    全新程式碼縮減器

    R8 是取代 ProGuard 的新工具,用於將程式碼縮減和模糊化。如要使用 R8 預先發布版,請在專案的gradle.properties檔案中加入以下內容:

    android.enableR8 = true
    

    變更多 APK 的預設 ABI

    如果您建構多個 APK,且每個 API 分別指定不同的 ABI,則在預設情況下,外掛程式不會再為下列 ABI 產生 APK:mipsmips64armeabi

    如要建構指定這些 ABI 的 APK,您必須使用 NDK r16b 以下版本,並在 build.gradle 檔案中指定 ABI,如下所示:

    Groovy

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    

    Kotlin

    splits {
        abi {
            include("armeabi", "mips", "mips64")
            ...
        }
    }
    

    改善 CMake 建構檔案的編輯器功能

    如果您使用 CMake在專案中新增 C 和 C++ 程式碼,Android Studio 現在提供經過改良的編輯器功能,可協助您編輯 CMake 建構指令碼,例如:

    • 語法醒目顯示和程式碼完成功能:IDE 現在會針對常見的 CMake 指令醒目顯示及提出程式碼完成建議。此外,您可以按住 Ctrl 鍵 (如果是 Mac 則為 Command 鍵) 並點選檔案來前往該檔案。
    • 程式碼重新格式化:您現在可以使用 IntelliJ 的程式碼重新格式化選項,將程式碼樣式套用到 CMake 建構指令碼。
    • 安全重構:IDE 的內建重構工具現在也會進行檢查,確認您是否要重新命名或刪除 CMake 建構指令碼中參照的檔案。

    在先前的 Android Studio 版本中使用「Project」視窗時,您只能瀏覽及檢查透過本機專案建構的程式庫中所含的標頭檔案。在這個版本中,您現在還可針對匯入應用程式專案中的外部 C/C++ 程式庫依附元件,查看及檢查當中隨附的標頭檔案。

    如果您已在專案中加入 C/C++ 程式碼和程式庫,請從主選單中依序選取「View」>「Tool Windows」>「Project」,然後從下拉式選單中選取「Android」,「Project」視窗隨即會在 IDE 左側開啟。在cpp 目錄中,凡是屬於應用程式專案範圍內的標頭,全都會整理在各個本機 C/C++ 程式庫依附元件的include節點底下,如下所示。

    預設啟用原生 multidex

    將偵錯版本的應用程式部署至搭載 Android API 級別 21 以上的裝置時,先前的 Android Studio 版本會啟用原生 multidex。現在,無論您要部署至裝置,還是要建構發布用的 APK,Gradle 適用的 Android 外掛程式都會為設定了minSdkVersion=21以上版本的所有模組啟用原生 multidex。

    AAPT2 已移至 Google 的 Maven 存放區

    從 Android Studio 3.2 版開始,AAPT2 (Android 資產封裝工具 2)的來源為 Google 的 Maven 存放區。

    如要使用 AAPT2,請確認build.gradle檔案中有google()依附元件,如下所示:

    Groovy

    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.0'
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    

    Kotlin

    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath("com.android.tools.build:gradle:3.2.0")
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    

    新版 AAPT2 修正了許多問題,包括改善 Windows 中非 ASCII 字元的處理方式。

    移除隨選設定

    「Configure on demand」偏好設定已從 Android Studio 中移除。

    Android Studio 不會再將--configure-on-demand引數傳遞至 Gradle。

    ADB 連線小幫手

    新的ADB 連線小幫手會提供逐步操作說明,協助您透過「Android Debug Bridge (ADB)」連線設定及使用裝置。

    如要啟動這個小幫手,請依序選擇「Tools」>「Connection Assistant」

    ADB 連線小幫手會在「Assistant」面板的一系列頁面中,提供相關操作說明、關聯控制項和已連結裝置清單。

    模擬器改善項目

    您現在隨時可以在 Android Emulator 中儲存和載入 AVD (Android 虛擬裝置) 的快照,輕鬆快速地讓模擬裝置回到已知狀態進行測試。使用 AVD Manager 編輯 AVD 時,您可以指定要在 AVD 啟動時載入的 AVD 快照。

    用於儲存、載入及管理 AVD 快照的控制項現在都位於模擬器「Extended controls」視窗的「Snapshots」分頁中。

    詳情請參閱「Snapshots」。

    如要進一步瞭解 Android Emulator 有哪些新功能和異動內容,請參閱 Android Emulator 版本資訊

    3.1 版 (2018 年 3 月)

    Android Studio 3.1.0 版是主要版本,其中包含多項新功能和改善項目。

    3.1.4 版 (2018 年 8 月)

    這個 Android Studio 3.1 版的更新版本包含下列變更和修正項目:

    • 現在隨附的 Kotlin 版本為 1.2.50 版。
    • 系統會使用kotlin-stdlib-jdk* artifacts(而不是已淘汰的kotlin-stdlib-jre*成果) 建立新專案。
    • ProGuard 規則的 R8 分析功能已經改善。
    • 這個版本修正了下列錯誤:
      • Kotlin 主要類別執行失敗,並顯示以下錯誤:"Error: Could not find or load main class..."
      • 執行某些最佳化作業時,R8 會進入無限循環。
      • 如果在「Run」視窗中使用「Rerun failed tests」指令,有時系統會誤傳回「No tests were found」訊息。
      • D8 並未妥善處理invoke-virtual例項,導致發生異常終止的情形並顯示 VerifyErrorinvoke-super/virtual can't be used on private method
      • 資料繫結編譯器依附舊版com.android.tools:annotations。現在,編譯器會使用基礎專案的工具註解 (如果有的話)。
      • 使用分析器時,Android Studio 會在片段轉換時停止運作。
      • 對包含文字方塊的版面配置進行偵錯時,偵錯工具會停止運作。
      • D8 無法讀取某些含有特殊字元的 ZIP 檔案。

    3.1.3 版 (2018 年 6 月)

    這個 Android Studio 3.1 版的更新版本修正了下列錯誤:

    • 使用版面配置編輯器之後,記憶體流失情形會導致 Android Studio 的執行速度變慢且沒有回應。這項更新修正了大部分的這類問題。我們會盡快發布另一項更新,解決其他記憶體流失問題。
    • 某些透過 D8 建構的應用程式會在部分 Verizon Ellipsis 平板電腦上停止運作。
    • 在搭載 Android 5.0 或 5.1 (API 級別 21 或 22) 的裝置上無法安裝透過 D8 建構的應用程式,並會傳回INSTALL_FAILED_DEXOPT錯誤。
    • 在搭載 Android 4.4 (API 級別 19) 的裝置上,某些採用 OkHttp 程式庫並透過 D8 建構的應用程式會停止運作。
    • 在為com.intellij.psi.jsp.JspElementType進行類別初始化期間,Android Studio 有時會無法啟動並顯示ProcessCanceledException

    3.1.2 版 (2018 年 4 月)

    這個 Android Studio 3.1 版的更新版本修正了下列錯誤:

    • 在某些情況下,Android Studio 會在離開時無限期停止回應。
    • 在啟用立即執行功能的情況下,透過來源集設定的建構作業會失敗,並顯示以下訊息:

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • 在啟用立即執行功能的情況下,Run指令觸發的新 Kotlin 專案建構作業會失敗。
    • 在編輯build.gradle檔案的過程中,有時從輸入字元到字元顯示在畫面上會有一段明顯的延遲。
    • 在某些含有大量模組或外部依附元件的專案中執行 dex 處理時,會發生建構錯誤並顯示以下錯誤訊息:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • 系統計算 D8 主要 DEX 清單時未將某些反射式叫用納入考量。

    這項更新還導入了一些變更,大幅加快在某些情況下透過 Gradle 執行 Lint 檢查的速度。

    3.1.1 版 (2018 年 4 月)

    這個 Android Studio 3.1 版的更新版本修正了下列錯誤:

    • 在某些情況下,在 Android Studio 3.1 版中首次開啟透過 Android Studio 3.0 版建立的專案時,Gradle 感知 Make 工作會從「Run/Debug Configurations」(執行/偵錯設定)的「Before launch」(發布前)部分中移除。這會導致系統並未在您點選「Run」或「Debug」按鈕時建構專案,進而造成一些錯誤,例如部署的 APK 有誤,以及使用自動執行功能時發生異常終止的情形。

      為解決這個問題,針對缺少這個項目的專案,Android Studio 3.1.1 版會將 Gradle 感知 Make 工作新增至執行設定。系統會在載入專案並首次執行 Gradle 同步處理後進行這項修改作業。

    • 在已啟用進階分析功能的情況下,對包含文字方塊的版面配置進行偵錯時,偵錯工具會停止運作。
    • 點選「Build Variants」後,Android Studio 會沒有反應。
    • 系統會擷取 AAR (Android 封存) 檔案兩次,分別發生在 Gradle 同步處理程序和 Gradle 建構程序期間。
    • 從 SVG 檔案匯入的部分向量可繪項目缺少元素。
    • 有關 compile 依附元件設定已遭淘汰的警告內容已更新,現在會針對 implementationapi 設定進一步提供相關指引。想進一步瞭解如何改用compile設定以外的選項,請參閱新依附元件設定的說明文件

    程式設計/IDE

    IntelliJ 2017.3.3 版

    核心 Android Studio IDE 已更新,可提供 IntelliJ IDEA 2017.3.3 版的改善項目,包括更優異的集合與字串控制流程分析,更精確的「是否可為空值」推論功能、新的快速修正內容等。

    詳情請參閱 IntelliJ IDEA 版本2017.22017.3的 JetBrains 版本資訊,以及錯誤修正更新方面的 JetBrains 版本資訊。

    改善使用 Room 時的 SQL 編輯功能

    現在使用Room 資料庫程式庫時,您可以享有更完善的 SQL 編輯功能,例如:

    • Query中的程式碼完成作業能夠理解 SQL 資料表 (實體)、資料欄、查詢參數、別名、彙整、子查詢和 WITH 子句。
    • SQL 語法醒目顯示功能現可正常運作。
    • 您可以在 SQL 資料表名稱上按一下滑鼠右鍵並重新命名,這樣系統會一併重新編寫對應的 Java 或 Kotlin 程式碼 (包括查詢的傳回類型等)。同樣地,如果您重新命名 Java 類別或欄位,系統也會重新編寫對應的 SQL 程式碼。
    • 當您對內容選單按一下滑鼠右鍵並選擇「Find usages」 選項時,系統會顯示 SQL 使用資料。
    • 如要前往 Java 或 Kotlin 程式碼中 SQL 實體的宣告內容,您可以按住 Ctrl 鍵 (如果使用 Mac,則按住 Command 鍵) 並點選這個實體。

    如要進一步瞭解如何透過 Room 使用 SQL,請參閱使用 Room 將資料儲存在本機資料庫

    資料繫結更新

    這項更新對資料繫結進行了以下幾點改善:

    • 您現在可以使用LiveData物件做為資料繫結運算式中的可觀察欄位。ViewDataBinding類別現在包含新的setLifecycle()方法,可用於觀察LiveData物件。

    • ObservableField類別現在可以在其建構函式中接受其他Observable物件。

    • 您可以預覽資料繫結類別的全新漸進式編譯器。如要進一步瞭解這個新的編譯器和啟用操作說明,請參閱資料繫結編譯器 V2

      這個新編譯器的優點如下:

      • ViewBinding類別是由 Gradle 適用的 Android 外掛程式產生 (在 Java 編譯器之前)。

      • 程式庫會在編譯應用程式時保留其產生的繫結類別,而不會每次重新產生。這可大幅提升多模組專案的效能。

    編譯器和 Gradle

    D8 是預設的 DEX 編譯器

    系統現在預設會使用 D8 編譯器產生 DEX 位元碼。

    這個新的 DEX 編譯器可帶來幾項好處,包括:

    • 加快 dex 處理速度
    • 降低記憶體用量
    • 改善程式碼產生功能 (更妥善的暫存區配置、智慧程度更高的字串資料表)
    • 逐行執行程式碼時提供更優異的偵錯體驗

    除非先前已手動停用 D8 編譯器,否則您不需要對程式碼或開發工作流程進行任何變更,即可享有這些好處。如果您在gradle.properties中將android.enableD8設為false,請刪除該標記或將其設為true

    android.enableD8=true
    

    詳情請參閱新的 DEX 編譯器

    漸進式脫糖

    如果專案使用Java 8 語言功能,系統預設會啟用漸進式脫糖功能,藉此減少建構時間。

    脫糖程序會將語法糖轉換成編譯器能夠更有效處理的形式。

    您可以在專案的gradle.properties檔案中指定以下內容,藉此停用漸進式脫糖功能:

    android.enableIncrementalDesugaring=false
    

    簡化輸出視窗

    「Gradle Console」已由「Build」視窗取代,該視窗提供「Sync」分頁和「Build」分頁。

    想進一步瞭解如何使用經過簡化的全新「Build」視窗,請參閱監控建構程序

    批次更新和索引建立作業並行功能

    您現在可以更有效率地執行 Gradle 同步處理和 IDE 索引建立程序,減少花在重複性索引建立作業上的時間。

    C++ 和 LLDB

    針對 C++ 開發作業的程式設計、同步處理、建構和偵錯階段,我們做出了許多品質和效能方面的改善,包括:

    • 處理大型 C++ 專案時,您應該會注意到建構符號所需的時間已大幅縮短。此外,大型專案的同步處理作業所需時間也大幅減少。

    • 透過 CMake 進行建構和同步處理時,系統會更積極重複使用快取結果,藉此提升執行效能。

    • 新增適用於更多 C++ 資料結構的格式設定器 (「美化排版器」),讓 LLDB 輸出結果更容易讀取。

    • LLDB現在只支援 Android 4.1 (API 級別 16) 以上版本。

    Kotlin

    Kotlin 現已升級至 1.2.30 版

    Android Studio 3.1 版提供Kotlin 1.2.30 版

    現在可透過指令列 Lint 檢查功能分析 Kotlin 程式碼

    您現在可以透過指令列執行 Lint來分析 Kotlin 類別。

    針對要執行 Lint 的各項專案,您必須將Google 的 Maven 存放區納入頂層build.gradle檔案中。如果是在 Android Studio 3.0 以上版本中建立的專案,相關檔案已納入這個 Maven 存放區。

    效能工具

    使用 CPU 分析器對原生 C++ 程序進行採樣

    CPU 分析器現在提供一項預設設定,讓您記錄應用程式原生執行緒的採樣追蹤記錄。如要使用這項設定,請將應用程式部署至搭載 Android 8.0 (API 級別 26) 以上版本的裝置,然後從 CPU 分析器的記錄設定下拉式選單中選取「Sampled (Native)」。之後,請照常記錄和檢查追蹤記錄

    您可以建立記錄設定來變更預設設定 (例如採樣時間間隔)。

    如要改為重新追蹤 Java 執行緒,請選取「Sampled (Java)」或「Instrumented (Java)」設定。

    篩選 CPU 追蹤記錄、記憶體配置和記憶體快照資料

    CPU 分析器記憶體分析器提供搜尋功能,讓您篩選方法追蹤記錄、記憶體配置和記憶體快照資料記錄的結果。

    如要進行搜尋,請按一下窗格右上角的「Filter」圖示,輸入查詢內容,然後按下 Enter 鍵。

    提示:您也可以按下 Ctrl + F 鍵 (如果使用 Mac,則為 Command + F 鍵) 來開啟搜尋欄位。

    在 CPU 分析器的「Flame Chart」分頁中,包含搜尋查詢相關方法的呼叫堆疊會醒目顯示,並移至圖表左側。

    想進一步瞭解如何依照方法、類別或套件名稱進行篩選,請參閱記錄及檢查方法追蹤記錄

    網路分析器中的 Request 分頁

    網路分析器現在包含「Request」分頁,可提供所選時間範圍內的網路要求相關詳細資料。先前版本中的網路分析器只會提供網路回應相關資訊。

    網路分析器中的「Thread View」分頁

    網路分析器中選取時間軸的某個部分後,您可以選取下列其中一個分頁,查看該時間範圍內的網路活動詳細資料:

    • 連線檢視:所提供的資訊與先前的 Android Studio 版本相同。這個檢視會列出應用程式的所有 CPU 執行緒在所選時間範圍內傳送或接收的檔案。您可以檢查每個要求的大小、類型、狀態和傳輸時間長度。
    • 執行緒檢視:顯示應用程式每個 CPU 執行緒的網路活動。這個檢視可讓您檢查各項網路要求是由應用程式的哪個執行緒產生。

    版面配置檢查器

    我們在版面配置檢查器中加入了幾項新功能,包括過去由已淘汰的階層檢視器和 Pixel Perfect 工具提供的一些功能:

    • 用於瀏覽和檢查版面配置的縮放按鈕和鍵盤快速鍵
    • 參照格線重疊元素
    • 載入參考圖片並做為重疊元素使用的功能 (適合用來將版面配置與 UI 模擬圖進行比較)
    • 顯示子樹狀結構預覽,將複雜版面配置中的特定檢視區塊分離出來

    版面配置編輯器

    版面配置編輯器中的「Palette」有多項改善項目:

    您可以在元件樹狀結構或設計編輯器中使用新的「Convert view」指令,轉換檢視區塊或版面配置的類型。

    您現在可以在「Attributes」視窗頂端的檢視檢查器中,使用新的「Create a connection」按鈕 為指定檢視區塊附近的項目輕鬆建立限制。

    執行與立即執行

    我們已提升「Select deployment target」對話方塊中「Use same selection for future launches」選項行為的一致性。如果「Use same selection」選項處於啟用狀態,則「Select Deployment target」對話方塊只會在您首次使用「Run」指令時開啟,直到所選裝置中斷連線為止。

    如果指定搭載 Android 8.0 (API 級別 26) 以上版本的裝置,自動執行功能可將變更部署至資源,而不必重新啟動應用程式。之所以能夠這麼做,是因為資源包含在分割 APK 中。

    Android Emulator

    如要進一步瞭解模擬器自 Android Studio 3.0 版起有哪些新功能和異動內容,請參閱 Android Emulator27.0.2 版27.1.12 版的版本資訊。

    重大改善項目包括:

    • 用於儲存模擬器狀態和加快啟動速度的 Quick Boot 快照,以及使用「Save now」指令儲存自訂起始狀態的功能。
    • 無視窗模擬器畫面。
    • Android 8.0 (API 級別 26)、Android 8.1 (API 級別 27) 和 Android P 開發人員預覽版的系統映像檔。

    改善使用者介面和使用者體驗

    更多工具提示、鍵盤快速鍵和實用訊息

    我們在 Android Studio 的許多地方加入了工具提示及實用訊息重疊元素。

    如要查看許多指令的鍵盤快速鍵,只要將滑鼠游標懸停在按鈕上,直到工具提示顯示即可。

    「Tools」>「Android」選單現已移除

    「Tools」>「Android」選單現已移除。原本列在這個選單中的指令已移到其他地方。

    • 許多指令現在直接列在「Tools」選單中。
    • 「Sync project with gradle files」指令已移至「File」選單。
    • 「Device Monitor」指令已移除,如下所述。

    現可透過指令列使用裝置監控器

    在 Android Studio 3.1 版中,裝置監控器的重要性已降低。在許多情況下,裝置監控器功能現已改由全新和經過改良的工具來提供。

    如要瞭解如何透過指令列叫用裝置監控器,以及裝置監控器提供的工具,請參閱裝置監控器說明文件

    3.0 版 (2017 年 10 月)

    Android Studio 3.0.0 版是主要版本,其中包含多項新功能和改善項目。

    macOS 使用者:更新舊版 Android Studio 時可能會看到更新錯誤對話方塊,當中指出「Some conflicts were found in the installation area」。只要忽略這個錯誤並按一下「Cancel」即可繼續安裝。

    3.0.1 版 (2017 年 11 月)

    這是 Android Studio 3.0 版的次要更新版本,當中修正了一般錯誤並提升執行效能。

    Gradle 適用的 Android 外掛程式 3.0.0 版

    新版Gradle 適用的 Android 外掛程式包含各種改善項目和新功能,但主要是針對含有大量模組的專案提升建構效能。使用新版外掛程式處理這類大型專案時,您應該會感受到下列差異:

    • 新的延遲依附元件解析功能縮短了建構設定時間。
    • 您可以只針對要建構的專案和變化版本,使用變化版本感知依附元件解析功能
    • 對程式碼或資源套用簡易變更時的漸進式建構時間較短。

    這個版本還包含以下內容:

    • 支援 Android 8.0。
    • 支援根據語言資源建構獨立的 APK。
    • 支援Java 8 程式庫和 Java 8 語言功能(不含 Jack 編譯器)。
    • 支援 Android 測試支援資料庫 1.0 版 (Android 測試公用程式和Android Test Orchestrator)。
    • 改善 ndk-build 和 cmake 建構速度。
    • 改善 Gradle 同步處理速度。
    • AAPT2 現已預設為啟用。
    • ndkCompile現在有更多使用限制。建議您改用 CMake 或 ndk-build 編譯要封裝至 APK 的原生程式碼。詳情請參閱從 ndkcompile 遷移

    如要進一步瞭解異動內容,請參閱Gradle 適用的 Android 外掛程式版本資訊

    如果您已準備好升級至新版外掛程式,請參閱遷移至 Gradle 適用的 Android 外掛程式 3.0.0 版

    支援 Kotlin

    正如我們在2017 年 Google I/O 大會所宣布,Android 現已正式支援 Kotlin 程式設計語言。因此,這個版本的 Android Studio 支援利用 Kotlin 語言進行 Android 開發作業。

    如要在專案中使用 Kotlin,您可以依序點選「Code」>「Convert Java File to Kotlin File」,將 Java 檔案轉換成 Kotlin 檔案,也可以使用「New Project」精靈建立支援 Kotlin 的新專案。

    如要踏出第一步,請參閱將 Kotlin 新增至專案的操作說明。

    支援 Java 8 語言功能

    您現在可以使用特定的 Java 8 語言功能和透過 Java 8 建構的程式庫,而不再需要使用 Jack。請先停用 Jack,以便使用預設工具鏈內建的改善版 Java 8 支援功能。

    如要更新專案以支援新的 Java 8 語言工具鏈,請依序點選「File」>「Project Structure」,在「Project Structure」對話方塊中將「Source Compatibility」和「Target Compatibility」更新至 1.8。詳情請參閱使用 Java 8 語言功能的操作說明。

    Android 分析器

    全新的 Android 分析器取代了 Android 監控器工具,並提供一套新工具,讓您即時評估應用程式的 CPU、記憶體和網路用量。您可以執行採樣式方法追蹤作業來測定程式碼執行時間、擷取記憶體快照資料、查看記憶體配置,以及檢查網路傳輸檔案的詳細資料。

    如要開啟這項工具,請依序點選「View」>「Tool Windows」>「Android Profiler」,或是在工具列中按一下「Android Profiler」圖示

    視窗頂端的事件時間軸會顯示觸控事件、按鍵事件和相關活動變更,讓您可掌握更多脈絡資訊,瞭解時間軸中的其他效能事件。

    在 Android 分析器的總覽時間軸上,按一下「CPU」、「MEMORY」或「NETWORK」時間軸即可存取對應的分析器工具。

    CPU 分析器

    CPU 分析器會觸發樣本或檢測 CPU 追蹤記錄,協助您分析應用程式的 CPU 執行緒使用情形。您可以使用各種資料檢視和篩選器排解 CPU 效能問題。

    詳情請參閱CPU 分析器指南

    記憶體分析器

    記憶體分析器可協助您找出可能導致延遲、沒有回應、甚至應用程式異常終止的記憶體流失情形。這項工具會顯示應用程式記憶體用量的即時圖表,並可讓您擷取記憶體快照資料、強制收集垃圾,以及追蹤記憶體配置。

    詳情請參閱記憶體分析器指南

    網路分析器

    網路分析器可讓您監控應用程式的網路活動、檢查各項網路要求的酬載,以及連回產生網路要求的程式碼。

    詳情請參閱網路分析器指南

    APK 分析和偵錯

    現在只要 APK支援偵錯,而且您能夠存取偵錯符號和來源檔案,您就可以在 Android Studio 中直接分析和偵錯 APK,而不必透過 Android Studio 專案進行建構。

    如要開始使用這項功能,請按一下 Android Studio 歡迎畫面中的「Profile or debug APK」。如果您已開啟專案,也可以從選單列中依序點選「File」>「Profile or debug APK」。系統會顯示未封裝的 APK 檔案,但不會反編譯程式碼。因此,如要正確加入中斷點並查看堆疊追蹤,您必須附加 Java 來源檔案和原生偵錯符號。

    詳情請參閱為預先建立的 APK 進行分析和偵錯

    Device File Explorer

    新的 Device File Explorer 可讓您檢查已連結裝置的檔案系統,以及在裝置和電腦之間傳輸檔案。這會取代 DDMS 提供的檔案系統工具。

    如要開啟這項工具,請依序點選「View」>「Tool Windows」>「Device File Explorer」

    詳情請參閱Device File Explorer 指南

    支援免安裝應用程式

    透過全新的 Android 免安裝應用程式支援功能,您可以在專案中使用兩種新的模組建立免安裝應用程式:免安裝應用程式模組和功能模組 (如要使用這些模組,您必須先安裝免安裝應用程式開發 SDK)。

    Android Studio 還提供新的模組化重構操作,協助您在現有專案中加入免安裝應用程式支援功能。舉例來說,如果您想要重構專案,設置免安裝應用程式功能模組中的部分類別,請在「Project」視窗中選取類別,然後依序點選「Refactor」>「Modularize」。在隨即顯示的對話方塊中,選取要設置類別的模組,然後按一下「OK」

    準備好測試免安裝應用程式時,您可以在執行設定的啟動選項中指定免安裝應用程式的網址,藉此在已連結的裝置上建構及執行免安裝應用程式模組,方法如下:依序選取「Run」>「Edit Configurations」,選取免安裝應用程式模組,然後在「Launch Options」底下設定網址。

    詳情請參閱Android 免安裝應用程式

    Android Things 模組

    「New Project」和「New Module」精靈提供全新的 Android Things 範本,可協助您開始為搭載 Android 的 IoT 裝置進行開發。

    詳情請參閱建立 Android Things 專案的操作說明。

    「自動調整圖示」精靈

    Image Asset Studio 現在支援向量可繪項目,並可讓您建立適用於 Android 8.0 的自動調整啟動器圖示,同時為較舊的裝置建立傳統圖示 (「舊版」圖示)。

    首先,請在專案中的「res」資料夾上按一下滑鼠右鍵,然後依序點選「New」>「Image Asset」。在「Asset Studio」視窗中,選取「Launcher Icons (Adaptive and Legacy)」做為圖示類型。

    詳情請參閱「自動調整圖示」。

    支援字型資源

    為了支援 Android 8.0 中的新字型資源,Android Studio 提供字型資源選取器,可協助您將字型封裝至應用程式,或是對專案進行設定,讓系統在裝置上下載字型 (如果有的話)。您也可以透過版面配置編輯器,預覽版面配置中的字型

    如要試用可下載的字型,請確認裝置或模擬器執行的是 Google Play 服務 11.2.63 以上版本。詳情請參閱「可下載的字型」。

    Firebase 應用程式索引小幫手

    我們更新了 Firebase Assistant,其中加入了新的應用程式索引測試教學課程。如要開啟這個小幫手,請依序選取「Tools」>「Firebase」。接著依序選取「App Indexing」>「Test App Indexing」

    教學課程包含用於測試公開和個人內容索引的新按鈕:

    • 在步驟 2 中按一下「Preview search results」,確認網址是否會顯示在 Google 搜尋結果中。
    • 在步驟 3 中按一下「Check for errors」,確認應用程式中的可編入索引物件是否已加入個人內容索引。

    應用程式連結小幫手已更新,現在提供下列新功能:

    • 為每個網址對應新增網址測試,確保意圖篩選器能夠處理實際網址。

      您也可以使用下方所述的 <tools:validation> 標記手動定義這些網址測試。

    • 使用適當的物件項目建立 Digital Asset Links 檔案來支援Google Smart Lock,並在資訊清單檔案中新增對應的asset_statements <meta-data>標記。

    網址意圖篩選器驗證工具

    Android Studio 現在可讓您在資訊清單檔案中使用一種特殊標記,以便測試意圖篩選器網址。這類標記與應用程式連結小幫手可為您建立的標記相同。

    如要為意圖篩選器宣告測試網址,請加入<tools:validation>元素和對應的 <intent-filter> 元素。例如:

    <activity ...>
        <intent-filter>
            ...
        </intent-filter>
        <tools:validation testUrl="https://www.example.com/recipe/1138" />
    </activity>
    

    請務必一併在<manifest>標記中加入xmlns:tools="http://schemas.android.com/tools"

    如有任何測試網址未通過意圖篩選器定義,系統就會顯示 Lint 錯誤。即使發生這類錯誤,您還是可以建構偵錯變化版本,但發布子版本會受到破壞。

    版面配置編輯器

    版面配置編輯器已更新,在許多方面都有所改善,包括:

    • 新的工具列版面配置和圖示。
    • 元件樹狀結構中的全新版面配置。
    • 更完善的拖曳檢視插入功能。
    • 編輯器下方會顯示新的錯誤面板,當中顯示所有問題和修正建議 (如果有的話)。
    • 各種 UI 改善項目,可協助您透過ConstraintLayout進行建構作業,包括:
      • 全新的建立障礙支援功能。
      • 全新的建立群組支援功能:在工具列中依序選取「Guidelines」>「Add Group」,這項功能需要使用 ConstraintLayout 1.1.0 Beta 版 2 以上版本。
      • 用於建立鏈結的全新 UI:選取多個檢視區塊,然後按一下滑鼠右鍵並選取「Chain」

    版面配置檢查器

    版面配置檢查器已改善,可讓您輕鬆偵錯應用程式版面配置相關問題。例如,您可以將各項資源歸入常用類別,以及在「View Tree」 和「Properties」窗格中使用新的搜尋功能。

    APK 分析工具

    現在apkanalyzer工具可讓您透過指令列使用 APK 分析工具。

    APK 分析工具也已更新,以提供下列改善項目:

    • 針對透過 ProGuard 建構的 APK,您可以載入 ProGuard 對應檔,為 DEX 檢視器新增一些功能,包括:
      • 使用粗體來表示不應在縮減程式碼時移除的節點。
      • 按下相關按鈕,即可顯示在縮減程序中遭移除的節點。
      • 按下相關按鈕,即可將樹狀檢視中由 ProGuard 模糊化的節點還原至原始名稱。
    • DEX 檢視器現在會顯示每個套件、類別及方法的預估大小影響。
    • 透過頂端的新篩選選項來顯示/隱藏欄位和方法。
    • 在樹狀檢視中,如果節點是 DEX 檔案中未定義的參照,則會以斜體顯示。

    詳情請參閱使用 APK 分析工具分析建構內容

    D8 DEX 編譯器預覽功能

    Android Studio 3.0 版提供選用的新 DEX 編譯器:D8。這個新的 D8 編譯器最終會取代 DX 編譯器,但您可以選擇立即採用。

    DEX 編譯作業會直接影響應用程式的建構時間、.dex檔案大小和執行階段效能。相較於目前的 DX 編譯器,全新 D8 編譯器的編譯速度較快,輸出的.dex檔案也較小,同時可保持和提升應用程式執行階段效能。

    如要試用這項功能,請在專案的gradle.properties檔案中設定以下內容:

    android.enableD8=true
    

    詳情請參閱有關 D8 編譯器的網誌文章

    Google 的 Maven 存放區

    Android Studio 現在會預設使用 Google 的 Maven 存放區,而非透過 Android SDK Manager 來取得 Android 支援資料庫、Google Play 服務、Firebase 和其他依附元件的更新。這樣一來就能輕鬆將程式庫保持在最新狀態,特別是在使用持續整合 (CI) 系統時。

    現在所有新專案都預設包含 Google Maven 存放區。如要更新現有專案,請在頂層build.gradle檔案的repositories區塊中新增google()

    allprojects {
        repositories {
            google()
        }
    }
    

    如要進一步瞭解 Google 的 Maven 存放區,請按這裡

    其他變更

    • Android Studio 的原生偵錯功能不再支援 32 位元的 Windows。由於很少開發人員使用這個平台,因此我們選擇將重心放在其他平台。如果您使用 32 位元 Windows,並打算對原生程式碼進行偵錯,請繼續使用Android Studio 2.3 版
    • 基礎 IDE 已升級至IntelliJ 2017.1.2 版,這個版本加入了 2016.3 版2017.1 版的幾項新功能,例如 Java 8 語言重構、參數提示、語意醒目顯示、可拖曳的中斷點、即時搜尋結果等。
    • 新增許多 Lint 檢查項目。
    • 另請參閱最新的Android Emulator 更新內容

    2.3 版 (2017 年 3 月)

    Android Studio 2.3.0 版主要在修正錯誤和提升穩定性,但也提供多項新功能。

    2.3.3 版 (2017 年 6 月)

    這個次要更新版本新增了對 Android O (API 級別 26) 的支援。

    2.3.2 版 (2017 年 4 月)

    這是 Android Studio 2.3 版的次要更新版本,變更內容如下:

    • AVD Manager 已更新,現可在系統映像檔中支援 Google Play。
    • 修正在使用 NDK R14+ 建構 NDK 時會發生的錯誤。

    另請參閱Android Emulator 26.0.3 版的更新內容。

    2.3.1 版 (2017 年 4 月)

    這是 Android Studio 2.3 版的次要更新版本,當中修正了某些實體 Android 裝置無法妥善支援即時執行功能的錯誤。詳情請參閱問題 #235879

    新功能

    • Android Studio 現在可以將 PNG、BMP、JPG 和靜態 GIF 檔案轉換成 WebP 格式。WebP 是 Google 的圖片檔案格式,可支援有損壓縮 (例如 JPEG) 和透明度 (例如 PNG),但壓縮效果比 JPEG 或 PNG 更好。詳情請參閱在 Android Studio 中將圖片轉換為 WebP
    • 全新的應用程式連結小幫手提供逐步精靈,可簡化在應用程式中加入 Android 應用程式連結的流程。Android 應用程式連結是 HTTP 網址,可將使用者直接導向 Android 應用程式中的特定內容。
    • 版面配置編輯器現在支援兩項新的 ConstraintLayout 功能:
      • 根據長寬比定義檢視區塊大小。
      • 透過限制鏈來建立經過封裝和加權的分散式線性群組。
      詳情請參閱「使用 ConstraintLayout 打造回應式 UI」。
    • 版面配置編輯器現在可讓您建立常用屬性清單,這樣一來,您不必點選「View all attributes」即可存取最常使用的屬性。
    • 現在使用「Vector Import」對話方塊新增質感設計圖示 (依序選取「File」>「New」>「Vector Asset」) 時,您可以依類別或圖示名稱篩選可用圖示清單。詳情請參閱「新增質感設計圖示」。
    • 現在提供新註解和經過更新的註解。適用於方法、類別和套件的新@RestrictTo註解可讓您限制 API。@VisibleForTesting註解經過更新,現在提供選用的otherwise引數,可讓您指定在不需要顯示以進行測試的情況下,特定方法是否應顯示。Lint 會使用otherwise選項來強制實行您指定的方法顯示設定。
    • 透過新的lint 基準支援功能,您可以將專案目前的警告集快照做為日後的檢查基準,讓系統只回報新問題。基準快照可讓您使用 lint,針對新問題讓建構作業無法完成,而不必先回頭解決所有現有問題。
    • 現在提供新的 Lint 檢查項目,包括:
      • 已淘汰的 SDK_INT 檢查項目:Android Studio 會移除已淘汰的 SDK 版本檢查程式碼。
      • 物件動畫器驗證:Lint 會分析程式碼,確保ObjectAnimator呼叫所參照的方法有效且包含正確的簽章,並檢查這些方法是否包含 @Keep註解,避免 ProGuard 在發布子版本建構作業期間重新命名或遭到移除。
      • 不必要的項目裝飾器副本:舊版RecyclerView程式庫不提供分隔裝飾器類別,但支援示範中提供這個類別做為範例。較新的程式庫版本則提供分隔裝飾器類別。Lint 會尋找舊範例,並建議您替換成新範例。
      • WifiManager 記憶體流失:在 Android 7.0 (API 級別 24) 之前,如果使用Context.getSystemService()進行WifiManager初始化,在非應用程式的脈絡下可能會導致記憶體流失。Lint 會留意這類初始化作業,且如果「無法」判斷是否為應用程式脈絡,就會建議您使用Context.getApplicationContext()針對初始化作業取得正確的背景資訊。
      • 改善資源前置字串:現有的resourcePrefixLint 檢查項目有多項限制。現在,您可以使用前置字串 (例如android { resourcePrefix 'my_lib' }) 設定專案,且 Lint 會確保所有資源都使用這個前置字串。您可以針對不同樣式和主題使用該名稱的變化版本。舉例來說,針對my_lib前置字串,您可以使用名稱為MyLibThememyLibAttrmy_lib_layout等等的主題。
      • 切換至 WebP:這項檢查會根據專案的minSdkVersion設定,找出專案中能夠轉換成 WebP 格式的圖片。相關聯的 Quickfix 可自動轉換圖片,但您也可以手動將圖片轉換為 WebP
      • 不安全的 WebP:如果專案已包含 WebP 圖片,這項檢查會分析專案內容,確保minSdkVersion設定值夠高,可支援所含圖片。如要進一步瞭解 Android 和 Android Studio 中的 WebP 支援,請參閱「哪些瀏覽器對 WebP 提供原生支援?」和「使用 Android Studio 建立 WebP 圖片」。

    變更內容

    • 透過獨立按鈕使用自動執行功能推送變更:部署應用程式後,您現在可以點選「Apply changes」圖示 ,使用自動執行功能對執行中的應用程式快速推送漸進式變更。您隨時可以使用「Run」和「Debug」按鈕,以穩定可靠的方式推送變更和強制重新啟動應用程式。
      • 只有在將應用程式部署至搭載 Android 5.0 (API 級別 21) 以上版本的目標裝置時,才能使用自動執行功能。
      • 使用 CMake 或 ndk-build連結至外部原生專案的專案將不再停用自動執行功能。不過,您只能使用「instant run」功能對 Java 程式碼 (而非原生程式碼) 推送漸進式變更。
      • 冷交換 (按一下「Run」圖示 即可針對執行中的應用程式強制執行) 現在更加穩定可靠。此外,原先通知和小工具 UI 有所改變後,目標裝置上不會隨之更新,而強制執行冷交換也可解決這項問題。
      • 現在提供最佳化內容,可加快應用程式啟動速度。這些最佳化內容可能會影響分析作業,因此在分析應用程式時請暫時停用「Instant Run」功能
    • 「AVD Manager」和「SDK Manager」按鈕現在會顯示在導覽列和完整工具列中。如要使用導覽列,請按一下「View」開啟「View」選單,然後確認您已選取「Add Group」且並未選取「Toolbar」

    • 「混合型」偵錯工具已重新命名為「雙重」偵錯工具。
    • 在「Run/Debug Configurations」對話方塊的左側窗格中,「Defaults」底下的下列執行設定已重新命名,但其行為維持不變:
      • JUnit 已改名為 Android JUnit。如果您的專案使用 JUnit 執行設定,系統會在您首次使用 Android Studio 開啟專案時,將這些設定轉換為 Android JUnit 執行設定。系統會顯示對話方塊,通知您這項名稱異動事宜。
      • Android 測試已改名為 Android 檢測測試。
    • 自 2.3 版起,GPU 偵錯工具已從 Android Studio 中移除。GitHub中現在提供這項工具的開放原始碼獨立版本。
    • *.gradle build指令碼按一下滑鼠右鍵時,您無法再使用「Run/Debug」選項。
    • 所有範本現在均使用ConstraintLayout做為預設版面配置。
    • 版面配置編輯器中的小工具調色盤經過重新設計。

    這個版本也修正了一些錯誤。查看 2.3.0 版的完整錯誤修正清單

    已知問題:某些裝置製造商會禁止應用程式在裝置上安裝後自動啟動。使用 Android Studio 2.3 版將應用程式部署至實體裝置時,這項限制會導致「instant run」功能無法正常運作,並產生下列錯誤輸出內容:Error: Not found; no service started。如要避免這個問題,請使用模擬器,或在裝置設定中為應用程式啟用自動啟動功能。為每部裝置進行這項設定的程序可能不盡相同,因此請參閱製造商提供的操作說明。如要進一步瞭解這個問題,請參閱問題 #235879

    2.2 版 (2016 年 9 月)

    2.2.3 版 (2016 年 12 月)

    這是 Android Studio 2.2 版的次要更新版本,主要修正了關於 Gradle、核心 ID 和 Lint 的錯誤。

    這個版本的重要異動內容如下:

    • 復原 ProGuard 版本。由於在 ProGuard 5.3.1 版中發現正確性相關問題,因此我們已復原至 ProGuard 5.2.1 版。我們已與 ProGuard 團隊展開合作,以盡快修正這個問題,並預計將在 Android Studio 2.3 Canary 3 中更新至 ProGuard 5.3.2 版。
    • 修正aaptOptions IgnoreAssetsPattern無法正確運作的問題 (問題 224167)。
    • 修正 Constraint Layout 資料庫的 Gradle 自動下載錯誤 (問題 212128)。
    • 修正 JDK8/Kotlin 編譯器錯誤和 dx 問題 (問題 227729)。

    查看 2.2.3 版的完整錯誤修正清單

    2.2.2 版 (2016 年 10 月)

    這是 Android Studio 2.2 版的次要更新版本,當中包含幾項小幅變更並修正了一些錯誤,例如:

    • 透過 IDE 回報「instant run」(立即執行) 問題時,報告中現在也會包含InstantRun事件的 logcat 輸出內容。如要協助我們改善「instant run」(立即執行) 功能,請啟用額外的記錄功能並回報問題
    • 修正有關 Gradle 的多項小錯誤。
    • 修正產生多個 APK 時所發生的問題。

    2.2.1 版 (2016 年 10 月)

    這是 Android Studio 2.2 版的次要更新版本,當中修正了幾項錯誤,並提供一項用於啟用額外記錄的新功能,可協助我們排解「立即執行」相關問題。如要協助我們改善「Instant Run」功能,請啟用額外的記錄功能並回報問題

    新功能

    • 全新的版面配置編輯器,提供專門用於支援ConstraintLayout的工具。
    • 透過新的版面配置檢查器,您可以在應用程式透過模擬器或裝置執行期間,檢查版面配置階層的快照。
    • 新增「Assistant視窗,協助您將 Firebase 服務整合至應用程式。
    • 新增APK 分析工具,讓您可檢查封裝應用程式的內容。
    • 新增Espresso Test Recorder工具 (目前為 Beta 版),協助您記錄自己的互動內容,藉此建立 UI 測試。
    • 新增建構快取(目前為實驗功能),可加快建構效能。
    • 新增C/C++ 與 CMake 和 ndk-build 的建構作業整合。在封裝至 APK 的程式庫中編譯/建構新的或現有的原生程式碼,並使用 lldb 進行偵錯。如果是新專案,Android Studio 預設會使用 CMake,但也針對現有專案提供 ndk-build 支援。想瞭解如何在 Android 應用程式中加入原生程式碼,請參閱「在專案中新增 C 和 C++ 程式碼」。想瞭解如何使用 lldb 對原生程式碼進行偵錯,請參閱「對原生程式碼進行偵錯」。
    • 新增範例瀏覽器,讓您可在 Android Studio 中查詢 Google Android 程式碼範例,快速開始應用程式開發作業。
    • 新增合併的資訊清單檢視器,協助您針對所有專案建構變數,診斷資訊清單檔案與應用程式依附元件的合併情形。
    • 「Run」視窗現在包含目前執行中應用程式的記錄檔訊息。請注意,您可以設定 logcat 監控器顯示畫面,但不能設定「Run」視窗。
    • Android Emulator提供下列新功能:
      • 新增虛擬感應器,以及「Cellular」>「Signal Strength」控制項。
      • 在「Cellular」>「Network type」控制項中新增「LTE」選項。
      • 新增模擬垂直滑動,可讓您使用滑鼠滾輪捲動瀏覽垂直選單。
    • Run/Debug Configuration」提供下列新功能:
      • Android 應用程式和 Android 測試範本的「Debugger」(偵錯工具)分頁現在提供幾個新的 LLDB 偵錯選項。
      • Android 應用程式和 Android 測試範本的「Analysis」分頁現在提供「Capture GPU Commands」選項,可用於啟用 GPU 追蹤功能。您可以在 GPU 偵錯工具中顯示 GPU 追蹤記錄 (Beta 版功能)。
      • Android 測試範本現在提供適用於部署目標的「Firebase Test Lab Device Matrix」選項。
      • 原生應用程式範本已淘汰。如果您在專案中使用這個範本,Android Studio 會自動轉換為 Android 應用程式範本。
      • Android 應用程式 (Android Application) 範本已重新命名為 Android 應用程式 (Android App)。
    • 改善GPU 偵錯工具(目前為 Beta 版) 的安裝、設定、效能和 UI 功能。
    • Android Studio 現在隨附OpenJDK 8。現有專案仍會使用「File」>「Project Structure」>「SDK Location」中指定的 JDK。如要改為使用新的隨附 JDK,請依序點選「File」>「Project Structure」>「SDK Location」,然後勾選「Use embedded JDK」核取方塊。
    • 在 UI 中新增說明選單和按鈕,讓您可輕鬆查看線上說明文件。

    變更內容

    • IDE 程式碼集已從 IntelliJ 15 更新為IntelliJ 2016.1 版
    • 如要使用「立即執行」功能,則必須安裝與目標裝置 API 級別相對應的平台 SDK。
    • 如果使用者透過工作資料夾或次要使用者身分執行應用程式,「Instant Run」功能會自動停用。
    • 修正「Instant Run」 的許多穩定性問題,避免發生變更內容未部署或應用程式異常終止的情形,具體修正的錯誤如下:
      • 部分應用程式資產未部署至執行中的應用程式 (錯誤:#213454)。
      • 如果可序列化類別未定義 serialVersionUID,則當使用者在「立即執行」和非「立即執行」工作階段之間轉換時,應用程式會異常終止。(錯誤:#209006)。
      • 使用「instant run」時,樣式變更不會實際反映 (錯誤:#210851)。
      • 「instant run」工作階段不穩定,並造成 FileNotFoundException (錯誤:#213083)。
      • 在針對 KitKat 執行完整重新建構作業之前,可繪項目變更內容不會實際反映 (錯誤:#21530)。
      • 如果自訂 sourceSets 包含巢狀路徑,則使用「instant run」時,資源變更內容不會實際反映 (錯誤:#219145)。
      • 如果變更的類別包含具有列舉值的註解,則熱交換和暖交換機制會無法運作。(錯誤:#209047)。
      • 使用「instant run」時,註解資料變更內容不會實際反映 (錯誤:#210089)。
      • 如果您在 IDE 以外的環境進行變更,「instant run」不會反映程式碼變更 (錯誤:#213205)。
      • 「instant run」工作階段會因安全性權杖不一致而不穩定 (錯誤:#211989)。
      • 針對無法妥善支援 run-as 功能的裝置,冷交換會失敗。(錯誤:#210875)。
      • 應用程式在「instant run」功能重新啟動後異常終止。(錯誤:#219744)。
      • 從「instant run」切換至「Instant Debug」時會偵測到 ClassNotFoundException (錯誤:#215805)。
    • 改善 IDE 中的Gradle 同步處理效能,尤其是大型專案的同步處理作業。
    • 改善使用新的應用程式包裝程式碼進行完整和漸進式建構作業時的建構時間。
    • 改善Jack 編譯器的效能和功能,包括對註解處理工具和處理中 dex 的支援功能。詳情請參閱Gradle 適用的 Android 外掛程式 2.2.0 版本資訊
    • Scale AVD 屬性已從 AVD Manager 中移除。
    • Android Emulator-port-ports指令列選項現在會回報模擬器執行個體使用的通訊埠和序號,並在所提供的值有問題時發出警告。
    • 改善「Create New Class」對話方塊和對應的檔案範本。注意事項:如果您先前自訂了 AnnotationTypeClassEnumInterface,或Singleton檔案範本,則必須配合新範本修改現有範本,否則無法使用「Create New Class」對話方塊中的新欄位。
    • 改善Vector Asset Studio使用者介面,並加入對 Adobe Photoshop Document (PSD) 檔案的支援功能。
    • 改善Image Asset Studio使用者介面。
    • 改善主題編輯器的資源挑選器。
    • 修正 Android Studio 中的記憶體流失問題,並減少整體記憶體用量。
    • SDK Manager中新增「Background」按鈕,讓您可繼續工作,並在背景安裝套件。
    • 改善無障礙功能,包括對螢幕閱讀器和鍵盤導覽的支援功能。
    • 改良程式碼分析功能,現在可針對 Java 8 語言使用情形進行程式碼品質檢查,並提供更多跨檔案分析功能。
    • 變更多個工具列圖示。

    2.1 版 (2016 年 4 月)

    這項更新主要提供了 Android N 預先發布版開發作業的相關支援。

    2.1.3 版 (2016 年 8 月)

    這項更新加入了對 Gradle 2.14.1 版的支援功能,該版本不但改善執行效能,還提供新功能和一項重要的安全性修正。詳情請參閱Gradle 版本資訊

    根據預設,Android Studio 2.1.3 版中的新專案會使用 Gradle 2.14.1 版。針對現有專案,IDE 會提示您升級至 Gradle 2.14.1 版,以及使用 Gradle 2.14.1 以上版本所需的Gradle 適用的 Android 外掛程式 2.1.3 版

    2.1.2 版 (2016 年 6 月)

    當中包含幾項小幅變更並修正了一些錯誤:

    • 更新立即執行功能並修正相關錯誤。
    • 改善 LLDB 效能和異常終止通知。
    • 修正 Android Studio 2.1.1 版安全性更新中造成git rebase失敗的迴歸問題。

    2.1.1 版 (2016 年 5 月)

    安全性版本更新。

    Android N 平台現已開始支援Java 8 語言功能,而這類功能需要使用名為 Jack 的新實驗性編譯器。目前只有 Android Studio 2.1 版支援最新版本的 Jack。因此,如果您想使用 Java 8 語言功能,就必須使用 Android Studio 2.1 版建構應用程式。

    注意事項:如果您啟用 Jack 編譯器,系統會停用立即執行功能,因為兩者目前不相容。

    雖然 Android Studio 2.1 版現已穩定,但 Jack 編譯器仍在實驗階段,且必須在build.gradle檔案中透過jackOptions屬性來啟用。

    除了導入一些變更來支援 N 預先發布版以外,Android Studio 2.1 版還修正了多項小錯誤並做出下列改善:

    • 如果您使用 N 裝置或模擬器,並在執行/偵錯設定的「Debugger」分頁中選取原生偵錯工具模式,Java 感知 C++ 偵錯工具現在會預設啟用。

    如需其他建構強化功能 (包括漸進式 Java 編譯和處理中的 DEX 程序),請將 Gradle 適用的 Android 外掛程式更新至 2.1.0 版本。

    2.0 版 (2016 年 4 月)

    注意:如果您是為 N 開發人員預覽版進行開發作業,請使用 Android Studio 2.1 預先發布版。Android Studio 2.0 版不支援指定 N 預先發布版所需的所有功能。

    立即執行

    • Android Studio 現在能夠比以往更快的速度部署乾淨的版本。此外,您現在可以近即時地將漸進式程式碼變更推送至模擬器或實體裝置,而且可以直接查看更新,而不必重新部署新的偵錯版本,在許多情況下甚至不必重新啟動應用程式。
    • 「instant run」功能支援將下列變更推送到執行中的應用程式:
      • 現有執行個體方法或靜態方法的實作內容變更。
      • 現有應用程式資源的變更。
      • 結構程式碼的變更,例如方法簽章或靜態欄位的變更 (目標裝置必須搭載 API 級別 21 以上版本)。
    • 請參閱相關說明文件,進一步瞭解立即執行

      注意事項:只有在部署偵錯變數、使用Gradle 適用的 Android 外掛程式 2.0.0 以上版本,並針對minSdkVersion 15以上版本設定應用程式模組層級的 build.gradle檔案時,才可使用「instant run」功能。為獲得最佳成效,請針對minSdkVersion 21以上版本設定應用程式。

    Lint 新增項目:

    • 現在可以使用@IntDef加註整數檢查switch陳述式,確保系統會處理所有常數。如要快速新增任何缺少的陳述式,請使用意圖動作下拉式選單並選取「Add Missing @IntDef Constants」
    • 如果您使用字串內插類型在build.gradle檔案中插入版本號碼,系統會針對這類錯誤加上標記。
    • 擴充Fragment類別的匿名類別會加上標記。
    • 如果原生程式碼在不安全的位置 (例如res/asset/資料夾),系統會加上標記。這個標記可鼓勵使用者將原生程式碼儲存在libs/資料夾,讓系統在安裝時將原生程式碼安全地封裝至應用程式的data/app-lib/資料夾。Android 開放原始碼計畫:#169950
    • 不安全的Runtime.load()System.load()呼叫會加上標記。Android 開放原始碼計畫:#179980
    • 從選單列中依序選取「Refactor」>「Remove Unused Resources」,尋找並移除任何未使用的資源。未使用的資源偵測功能現在支援僅由未使用的資源所參照的資源、原始檔案中的參照 (例如.html圖片參照),以及 Gradle 資源縮減器使用的tools:keeptools:discard屬性,同時會將未使用的來源集 (例如其他變種版本中使用的資源) 納入考量,並妥善處理靜態欄位匯入項目。
    • 系統可檢查minSdkVersion指定的所有平台是否都支援隱式 API 參考資料。
    • 不當的RecyclerViewParcelable使用情形會加上標記。
    • @IntDef@IntRange@Size檢查作業現在也會檢查int陣列和可變引數。

    其他改進項目

    • Android Emulator 2.0 版經過最佳化,不但速度比以往更快、支援更多虛擬裝置,UI 也經過大幅改善。如要進一步瞭解新版模擬器,請參閱SDK 工具版本資訊
    • Android 虛擬裝置管理工具改善項目:
      • 系統映像檔現在會歸入以下分頁:「Recommended」、「x86」和「Other」
      • 您可以在進階設定底下啟用多核心支援,並指定模擬器可使用的核心數量。
      • 您可以在進階設定底下選取下列其中一個選項,決定模擬器中的圖形轉譯方式:
        • 硬體:使用電腦的顯示卡來加快轉譯速度。
        • 軟體:使用軟體式轉譯法。
        • Auto:讓模擬器決定最佳選項。這是預設設定。
    • 您可以在建構應用程式前指定部署目標,縮短 AAPT 封裝時間。這可讓 Android Studio 有效率地僅封裝指定裝置所需的資源。
    • 新增 Cloud Test Lab 整合功能,讓您可隨需求進行應用程式測試,同時享有雲端服務的便利性和擴充性。進一步瞭解如何搭配使用 Cloud Test Lab 和 Android Studio
    • 新增GPU 偵錯工具預覽功能。針對需要進行大量圖形運算的應用程式,您現在可以透過視覺化方式逐行執行 OpenGL ES 程式碼,藉此最佳化應用程式或遊戲。
    • 新增 Google 應用程式索引測試。您可以讓應用程式支援網址、應用程式索引和搜尋功能,藉此提升應用程式的流量、找出最常用的應用程式內容,以及吸引新使用者。無論要測試或驗證應用程式中的網址,全都可在 Android Studio 中進行。詳情請參閱在 Android Studio 中支援網址和應用程式索引
    • 提供最新 IntelliJ 15 版的升級項目,包括改善程式碼分析功能並提升執行效能。如需新功能和改善項目的完整說明,請參閱IntelliJ 的新功能
    • XML 編輯器的自動完成功能現在會在屬性處理完成後加上引號。如要檢查是否已啟用這個選項,請開啟「Settings」或「Preferences」對話方塊,依序前往「Editor」>「General」>「Smart Keys」,然後勾選「Add quotes for attribute value on attribute completion」旁邊的方塊問題:195113
    • XML 編輯器現在支援資料繫結運算式的程式碼完成作業。

    較舊版本