Android Studio 4.1 發佈,全方位提升開發體驗

我們很高興發佈了 Android Studio 4.1 穩定版,爲大家帶來一系列針對常見的編輯、調試和優化工作的功能。4.1 版本的重點訴求之一是幫助您在使用 Android Jetpack 庫 (即 Android 的開發庫套件) 時遵循最佳實踐和提升代碼編寫效率。基於大家的反饋,我們直接在 IDE 中集成了諸多常用的 Android 庫,從而改善了編寫代碼的體驗。

Android Studio 4.1 的一些亮點如下: 引入全新的 Database Inspector,用於查詢應用的數據庫;支持瀏覽使用 Dagger 或 Hilt 進行依賴項注入的項目;支持在 Android 項目中使用 TensorFlow Lite 模型,進一步增強了對設備端機器學習的支持。我們還對 Apply Changes 進行了更新,以加快部署速度。我們根據大家的反饋進行了一些更改,引入了新的原生內存性能分析器和獨立分析工具來爲遊戲開發者提供助力。

產品質量仍然是團隊的主要關注點,我們一直在努力解決錯誤和性能問題。從大家的反饋來看,許多開發者十分認同我們專注於提高性能和可靠性的舉措。很高興地告訴大家,在本次發佈週期中,我們修復了 2,370 個錯誤,解決了 275 個公共問題。高品質是我們一貫堅持的目標,因爲我們知道這是提高開發者工作效率的關鍵。

許多用戶在預覽版中提供了早期反饋,在此對大家表示感謝。正是有了各位的反饋,Android Studio 4.1 中的功能才得以迭代和改進。如果您已準備好使用這個全新的穩定版本,通過一系列全新的功能提升工作效率,可以在這裏 下載 並開始使用。

下面按關鍵開發流程列出了 Android Studio 4.1 中的所有 新功能

設計

Material Design 組件更新

現在,創建新項目 (New Project) 對話框中的 Android Studio 模板使用 Material Design 組件 (MDC),並且默認支持最新版的主題和樣式設計指南。如此一來,開發者可以更輕鬆地使用推薦的 Material 樣式模式,以及支持現代界面功能 (如深色主題)。

更新包括:

  • MDC: 項目使用 build.gradle 中的 com.google.android.material:material。基礎應用主題使用 Theme.MaterialComponents 父級,並覆蓋更新後的 MDC 顏色和 "on" 屬性。
  • 顏色資源: colors.xml 中的顏色資源使用字面名稱 (例如,使用 purple_500 而不是 colorPrimary)。
  • 主題資源: 主題資源位於 themes.xml (而非 styles.xml) 中並使用 Theme.<ApplicationName> 名稱。
  • 深色主題: 基礎應用主題使用 DayNight 父級,並分爲 res/values 和 res/values-night
  • 主題屬性: 在佈局和樣式中將顏色資源稱爲主題屬性 (例如 ?attr/colorPrimary),以避免硬編碼顏色。

開發

Database Inspector

我們希望藉助新的 Database Inspector 來簡化應用數據庫的檢查、查詢和修改操作。首先,將您的應用部署到運行 API 26 或更高級別的設備,然後從菜單中依次選擇 View > Tool Windows > Database Inspector。無論您的應用是直接使用 Jetpack Room 開發庫還是 Android 平臺版本的 SQLite,您現在都可以輕鬆檢查正在運行的應用中的數據庫和表,或運行自定義查詢。

由於 Android Studio 在您檢查應用時會保持實時連接,因此您也可以使用 Database Inspector 對數值進行修改,並在運行的應用中查看結果。如果您使用 Room 持久庫,Android Studio 還會在代碼編輯器的每個查詢旁邊插入運行按鈕,以幫助您快速運行在 @Query 註解中定義的查詢。您可以閱讀 官方文檔 瞭解詳情。

直接在 Android Studio 中運行 Android 模擬器

現在,您可以直接在 Android Studio 中運行 Android 模擬器。此功能有助於節省屏幕空間,您可以使用熱鍵在模擬器和編輯器窗口之間快速導航,並在一個應用窗口中組織您的 IDE 和模擬器工作流。您可以在 Studio 中管理快照以及旋轉和截圖等常見的模擬器操作,但要使用全部功能選項,仍然需要使用穩定的模擬器。您可以按照這個菜單路徑啓用此功能: File → Settings → Tools → EmulatorLaunch in Tool Window

Dagger 導航支持

Dagger 是 Android 上常用的依賴項注入庫。Android Studio 提供了新的 gutter 操作並擴展了 Find Usages 窗口中的支持,使得在 Dagger 相關代碼之間導航更加簡單。例如,點擊使用給定類型的方法旁邊的

gutter 操作,會將您導航到提供該類型的位置。相反,點擊 gutter 操作會將您導航到將類型用作依賴項的位置。Android Studio 還支持對使用 Jetpack Hilt 庫定義的依賴項執行導航操作。您可以閱讀 官方文檔 瞭解詳情。

使用 TensorFlow Lite 模型

目前,Android 開發者紛紛利用機器學習來打造新穎、實用的體驗TensorFlow Lite 是常見的用於編寫移動端機器學習模型的開發庫,我們希望簡化將這些模型導入 Android 應用的過程。與視圖綁定類似,Android Studio 會生成易於使用的類,幫助您精簡運行模型所需的代碼並提升類型安全性。ML Model Binding (ML 模型綁定) 當前的實現支持圖像分類和風格轉換模型,前提是它們通過元數據得到了增強。

要查看導入模型的詳細信息以及如何在應用中使用,請雙擊項目中的 .tflite 模型文件以打開模型查看器頁面。您可以閱讀 官方文檔 瞭解詳情。

構建和測試

Android 模擬器 - 可摺疊設備鉸鏈信息支持

Android Studio

除了最近新增的 5G 移動網絡測試 功能,我們還在 Android 模擬器中增加了對可摺疊設備的支持。在 Android 模擬器 30.0.26 及更高版本中,您可以使用多種摺疊設計和配置對可摺疊設備進行設置。設置完畢後,模擬器將提供鉸鏈角度傳感器和姿態變化信息,方便您測試應用在這些機型上的響應情況。請參閱博文《使用 Android 模擬器在 Android 11 上進行開發》瞭解更多。

Apply Changes 更新

更快的構建有助於開發者更輕鬆、快速地更改應用。爲了幫助您提高應用迭代效率,我們對 Android 11 或更高版本設備的 Apply Changes 進行了多項增強。

我們在優化迭代速度上進行了大力投入,開發出一種無需安裝應用即可在設備上部署和保存更改的方法。現在,在完成初始部署後,通過 Apply Code Changes 或 Apply Changes and Restart Activity 對 Android 11 設備進行後續部署的速度大幅提升。我們還在 Apply Changes 中 增加了對其他代碼更改的支持。現在,在您添加一個方法後,可點擊 Apply Code Changes 或 Apply Changes and Restart Activity 按鈕將這些更改部署到正在運行的應用中。

從 AAR 中導出 C/C++ 依賴項

Android Gradle Plugin 4.0 增加了 在 AAR 依賴項中導入 Prefab 軟件包 的功能。我們希望擴展此功能以共享原生庫。AGP 4.1 支持在 Android 庫項目的 AAR 中從外部原生構建中導出庫。要導出原生庫,請將以下內容添加到庫項目 build.gradle 文件的 android 塊中:

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
        headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

原生代碼崩潰報告符號化解析

當原生代碼發生崩潰或 ANR 時,系統會生成堆棧軌跡,即程序崩潰前所調用的嵌套函數序列的快照。這些快照可以幫助您識別和修復源代碼中的問題,但是必須首先將它們符號化,以將計算機地址轉換回人類可讀的函數名。

如果您的應用或遊戲是使用 C++ 之類的原生代碼開發的,那麼您現在可以將每個版本應用的調試符號文件上傳到 Play 管理中心。Play 管理中心使用這些調試符號文件來符號化您應用的堆棧軌跡,從而簡化崩潰和 ANR 分析。如果要將調試符號包含在 App Bundle 中,請將下方內容添加到項目的 build.gradle 文件中:

android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'

優化

System Trace 界面改進

在 Android Studio 4.1 中,我們對 System Trace 進行了全面改進,該優化工具可讓您實時瞭解應用對系統資源的使用情況。通過框選模式還可以更輕鬆地選擇跟蹤記錄,此外,我們還添加了新的分析標籤頁,並添加了更多的幀渲染數據,以幫助您調查應用界面中的渲染問題。您可以閱讀 官方文檔 瞭解詳情。

框選 : 在 Threads 部分中,您現在可以拖動鼠標來框選一個矩形區域,並點擊右上角的 Zoom to Selection 按鈕 (或使用鍵盤快捷鍵 M) 來放大該區域。當您將相似的線程拖放到一起後,可以跨多個線程進行框選以同時檢查所有線程。

Summary 選項卡: Analysis 面板中全新的 Summary 選項卡會顯示以下內容:

  • 特定事件的所有實例的彙總統計信息,例如實例計數和最小/最大持續時間。
  • 選定實例的跟蹤事件統計信息。
  • 有關線程狀態分佈的數據。
  • 所選跟蹤事件內運行時間最長的實例。

△ 在 Summary 選項卡中查看彙總統計信息

顯示數據: 在 Display 部分,SurfaceFlingerVSYNC 的新時間軸可幫助您調查應用界面中的渲染問題。

獨立分析器

現在可以在獨立於 Android Studio 主窗口的單獨窗口中訪問 Android Studio 分析器。在優化使用其他工具 (如 Unity 或 Visual Studio) 構建的 Android 遊戲時,此功能十分有用。

要運行獨立分析器,請執行以下操作:

  1. 確保您的系統現在沒有運行 Android Studio 中的分析器。

  2. 轉到安裝目錄並導航到 bin 目錄:

Windows/Linux:

<studio-installation-folder>\bin

macOS:

<studio-installation-folder>/Contents/bin

  1. 根據您的操作系統,運行 profiler.exeprofiler.sh

獨立分析器可連接到 Android Emulator 或其他已連接的設備上。

原生內存性能分析器

跟蹤原生內存的使用情況對於遊戲開發者和其他使用 C++ 的開發者十分重要,他們可以據此優化其應用的內存使用。Android Studio 內存性能分析器 (Memory Profiler) 現在包含一個原生內存性能分析器 (Native Memory Profiler),專門用於運行在 Android 10 或更高版本的實體設備上的應用。原生內存性能分析器可以跟蹤特定時間段內原生代碼中對象的分配 / 銷燬情況,並提供內存總體分配和系統堆剩餘大小的信息。

要啓動記錄,請點擊 Memory Profiler 窗口頂部的 Record native allocations:

總結

簡要回顧一下,Android Studio 4.1 包括以下新增及改進功能:

設計

  • Material Design 組件更新

開發

  • Database Inspector
  • 直接在 Android Studio 中運行 Android 模擬器
  • Dagger 導航支持
  • 使用 TensorFlow Lite 模型

構建和測試

  • Android 模擬器 - 可摺疊設備鉸鏈信息支持
  • Apply Changes 更新
  • 從 AAR 中導出 C/C++ 依賴項
  • 原生代碼崩潰報告符號化解析

優化

  • System Trace 界面改進
  • 獨立分析器
  • 原生內存性能分析器

本文作者 / Scott Swarthout, 產品經理

文中資料並非由 Unity Technologies 或其附屬公司贊助或與其有關聯。“Unity”是 Unity Technologies 或其附屬公司在美國和其他地區的商標或註冊商標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章