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

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

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

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

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

下面按關鍵開發流程列出了 Android Studio 4.1 中的全部 新功能網絡

設計

Material Design 組件更新

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

△ 項目模板中的 Material Design 組件更新

△ 項目模板中的 Material Design 組件更新機器學習

更新包括:編輯器

  • 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 註解中定義的查詢。您能夠閱讀 官方文檔 瞭解詳情。工具

△ 使用 Database Inspector 檢查、查詢和修改應用數據庫

△ 使用 Database Inspector 檢查、查詢和修改應用數據庫

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

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

△ 在 Android Studio 中運行 Android Emulator

△ 在 Android Studio 中運行 Android Emulator

Dagger 導航支持

Dagger 是 Android 上經常使用的依賴項注入庫。Android Studio 提供了新的 gutter 操做並擴展了 Find Usages 窗口中的支持,使得在 Dagger 相關代碼之間導航更加簡單。例如,點擊使用給定類型的方法旁邊的  gutter 操做,會將您導航到提供該類型的位置。相反,點擊  gutter 操做會將您導航到將類型用做依賴項的位置。Android Studio 還支持對使用 Jetpack Hilt 庫定義的依賴項執行導航操做。您能夠閱讀 官方文檔 瞭解詳情。

△ 使用 gutter 操做在 Dagger 相關代碼之間導航

△ 使用 gutter 操做在 Dagger 相關代碼之間導航

使用 TensorFlow Lite 模型

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

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

△ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元數據

△ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元數據

構建和測試

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

Android Studio

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

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 選項卡中查看彙總統計信息

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

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

獨立分析器

如今能夠在獨立於 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.exe 或 profiler.sh

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

△ 使用獨立 Android Studio 分析器優化您的應用

△ 使用獨立 Android Studio 分析器優化您的應用

原生內存性能分析器

跟蹤原生內存的使用狀況對於遊戲開發者和其餘使用 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 或其附屬公司在美國和其餘地區的商標或註冊商標。

相關文章
相關標籤/搜索