今天我們很高興地發布了穩定版的 Android Studio 4.1,其中包含針對常見的編輯、調試和優化用例的一系列特性。此版本的一大主題是幫助你在使用 Android Jetpack 庫(這是 Android 的庫套件,旨在幫助開發人員遵循最佳實踐並更快地編寫代碼)時提高工作效率。根據大家的反饋,我們對代碼編輯體驗以及流行 Android 庫的 IDE 集成做了許多改進。
Android Studio 4.1 的一些亮點包括用於查詢應用資料庫的新資料庫檢查器(Database Inspector)、支持瀏覽使用 Dagger 或 Hilt 進行依賴項注入的項目,以及對 Android 設備中 TensorFlow Lite 模型的支持和對設備端機器學習的更好支持。我們還更新了 Apply Changes 以加快部署速度。根據大家的反饋,我們進行了一些更改,用新的原生內存剖析器和獨立剖析工具來幫助遊戲開發人員。
產品質量仍然是團隊關注的重點,我們一直在努力追蹤錯誤和性能問題。許多開發人員告訴我們,他們喜歡專注於提高性能和可靠性;因此我們很高興地報告,在這個發行周期中我們修復了 2370 個錯誤,並關閉了 275 個開放問題。我們一直在努力保持高質量,因為我們知道這是提高開發人員工作效率的關鍵。
感謝那些在預覽版本中提供了早期反饋的人們。你們的反饋意見幫助我們迭代和改進了 Android Studio 4.1 中的功能。如果你已經準備好使用下一個穩定版本,並且想要使用一套新的生產力特性,就請下載 Android Studio 4.1 吧。
以下是按主要開發流程排序的 Android Studio 4.1 中新特性的完整列表。
https://youtu.be/Yhbr6u7f3ME
現在,create New Project 對話框中的 Android Studio 模板使用 Material Design Components(MDC),並且默認遵循更新的主題和樣式指南。這些更改將使用戶更容易使用推薦的 material 樣式模式,並支持深色主題等現代 UI 特性。
Project Templates 中的 MDC 更新
更新包括:
MDC:項目依賴於 build.gradle 中的 com.google.android.material:material。基本應用主題使用 Theme.MaterialComponents.* 父級,並替換了更新後的 MDC 顏色和「on」屬性。
顏色資源:colors.xml 中的顏色資源使用字面名稱(例如 purple_500 代替了 colorPrimary)。
主題資源:主題資源位於 themes.xml(而非 styles.xml)中,並使用 Theme.名稱。
黑暗主題:基本應用主題使用 DayNight 父級,並拆分為 res/values 和 res/values-night。
主題屬性:顏色資源在布局和樣式中以主題屬性的形式(例如?attr/colorPrimary)引用,以避免硬編碼顏色。
我們希望使用新的資料庫檢查器來簡化檢查、查詢和修改應用資料庫的過程。首先,將你的應用部署到運行 API 級別 26 或更高級別的設備,然後從菜單欄中選擇 View>Tool Windows>Database Inspector。無論你的應用使用 Jetpack Room 庫還是直接使用 SQLite 的 Android 平臺版本,現在都可以輕鬆地檢查正在運行的應用中的資料庫和表,或運行自定義查詢。
由於 Android Studio 在檢查應用時會保持實時連接,因此你還可以使用資料庫檢查器修改值,並在運行的應用中查看這些更改。如果你使用 Room persistence 庫,則 Android Studio 還會在代碼編輯器中的每個查詢旁邊放置運行按鈕,以幫助你快速運行在 @Query 註解中定義的查詢。更多信息見 :
https://d.android.com/studio/inspect/database
使用資料庫檢查器檢查、查詢和修改應用的資料庫
現在,你可以直接在 Android Studio 中運行 Android 模擬器。使用此功能可以節省屏幕空間、使用熱鍵在模擬器和編輯器窗口之間快速導航,以及在單個應用窗口中組織 IDE 和模擬器工作流。你可以在 Studio 中管理快照和常見的模擬器操作,例如旋轉和獲取屏幕截圖,但是要訪問全部選項,仍然需要運行穩定的模擬器。你可以轉到 File→Settings→Tools→Emulator→Launch in Tool Window 來選用此功能。
在 Android Studio 中運行 Android 模擬器
Dagger 是 Android 上用於依賴項注入的流行庫。Android Studio 提供了新的邊線操作,並擴展了 Find Usages 窗口中的支持,使用戶更容易地瀏覽 Dagger 相關的代碼。例如,單擊使用給定類型的方法旁邊的
邊線操作,會將你導航到該類型的提供方。相反,單擊
邊線操作會將你導航到將類型用作依賴項的位置。Android Studio 還支持通過 Jetpack Hilt 庫定義的依賴項的導航操作。更多信息見:
https://developer.android.com/studio/releases#dagger-navigation
使用邊線操作瀏覽與 Dagger 相關的代碼
Android 開發人員正在使用機器學習來創造創新和有用的體驗。TensorFlow Lite 是一個流行的,用於編寫移動機器學習模型的庫,我們希望讓它更容易將這些模型導入 Android 應用。與視圖綁定類似,Android Studio 生成易於使用的類,讓你可以用更少的代碼和更好的類型安全性來運行模型。ML 模型綁定的當前實現支持圖像分類和風格遷移模型,前提是它們通過元數據得到了增強。
要查看導入模型的詳細信息並獲得有關如何在應用中使用它的說明,請在項目中雙擊.tflite 模型文件以打開模型查看器頁面。更多信息見:
https://developer.android.com/studio/write/mlmodelbinding
在 Android Studio 4.1 中查看 TensorFlow Lite 模型元數據
除了最近添加了 5G 蜂窩測試支持外,我們還在 Android 模擬器中添加了可摺疊設備支持。使用 Android 模擬器 30.0.26 及更高版本,你可以配置具有多種摺疊設計和配置的可摺疊設備。配置可摺疊設備後,模擬器將發布鉸鏈角度傳感器更新和形態變化,因此你可以測試你的應用如何響應這些形狀因素。更多信息見:
https://medium.com/androiddevelopers/developing-for-android-11-with-the-android-emulator-a9486af2d7ef
更快的構建可幫助開發人員更輕鬆、更快速地更改其應用。為了在你迭代應用時提高工作效率,我們對運行 Android 11 或更高版本設備的 Apply Changes 進行了多項增強。
我們在優化迭代速度方面投入大量資源,開發了一種無需安裝應用即可在設備上部署和保留更改的方法。初始部署後,使用 Apply Code Changes 或 Apply Changes and Restart Activity 後續部署到 Android 11 設備的速度現在有了顯著提高。我們還在 Apply Changes 中添加了對額外代碼更改的支持。現在,如果你添加了一個方法,可以單擊 Apply Code Changes 或 Apply Changes and Restart Activity 將這些更改部署到正在運行的應用。
Android Gradle Plugin4.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。要將調試符號包含在你的應用包中,請將以下代碼行添加到項目的 build.gradle 文件中:android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'
在 Android Studio 4.1 中,我們對 System Trace 進行了全面改革。這是一種優化工具,可讓你實時查看你的應用使用系統資源的情況。通過邊框選擇模式,我們可以更輕鬆地選擇跟蹤;我們還添加了新的分析標籤,並添加了更多的幀渲染數據,以幫助你調查應用 UI 中的渲染問題。更多信息見:
https://medium.com/androiddevelopers/whats-new-in-android-studio-system-trace-5841465c5935
邊框選擇:在 Threads 部分中,現在你可以拖動滑鼠選出一個矩形區域,然後可以點擊區域右上角的 Zoom to Selection 按鈕(或使用鍵盤快捷鍵 M)放大選中區域。當你將相似的線程拖放到一起時,可以選擇多個線程以同時檢查所有這些線程。
使用邊框選擇可以更輕鬆地選擇跟蹤。
Summary 標籤頁: Analysis 面板中新增的 Summary 標籤頁顯示以下內容:
在 Summary 標籤頁中查看匯總的統計信息
顯示數據:在 Display 部分,Surface Flinger 和 VSYNC 的新時間線可幫助你調查應用 UI 中的渲染問題。
現在可以在獨立於 Android Studio 主窗口的單獨窗口中使用 Android Studio 性能剖析器。在優化使用其他工具(如 Unity 或 Visual Studio)構建的 Android 遊戲時,此功能很有用。
要運行獨立性能剖析器,請執行以下操作:
1、確保你的系統上尚未運行 Android Studio 性能剖析器。
2、轉到安裝目錄並轉到 bin 目錄:
3、根據你的作業系統,運行 profiler.exe 或 profiler.sh
獨立性能剖析器允許你連接到 Android 模擬器或任何連接的設備。
使用獨立的 Android Studio 性能剖析器優化你的應用
對於遊戲開發人員和其他使用 C++ 的開發人員來說,要了解如何優化其應用的內存使用情況,就一定要跟蹤原生內存使用情況。Android Studio Memory Profiler 現在包括一個 Native Memory Profiler,用於部署到運行 Android 10 或更高版本物理設備的應用。這個原生內存剖析器會跟蹤特定時間段內原生代碼中對象的分配 / 取消分配,並提供有關總分配和剩餘系統堆大小的信息。
要啟動記錄過程,請單擊 Memory Profiler 窗口頂部的 Record native allocations:
使用原生內存剖析器查看原生內存分配
https://android-developers.googleblog.com/2020/10/android-studio-41.html
---END---
更文不易,點個「在看」支持一下👇