Android Studio 4.1 發(fā)布,全方位提升開發(fā)體驗

引言

我們很高興發(fā)布了 Android Studio 4.1 穩(wěn)定版,為大家?guī)硪幌盗嗅槍ΤR姷木庉嫛⒄{(diào)試和優(yōu)化工作的功能。4.1 版本的重點訴求之一是幫助您在使用 Android Jetpack 庫 (即 Android 的開發(fā)庫套件) 時遵循最佳實踐和提升代碼編寫效率?;诖蠹业姆答仯覀冎苯釉?IDE 中集成了諸多常用的 Android 庫,從而改善了編寫代碼的體驗。

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

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

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

下面按關(guān)鍵開發(fā)流程列出了 Android Studio 4.1 中的所有 新功能。

設(shè)計

Material Design 組件更新

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

更新包括:

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

開發(fā)

Database Inspector

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

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

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

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

image

Dagger 導(dǎo)航支持

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

gutter 操作,會將您導(dǎo)航到提供該類型的位置。相反,點擊

image

gutter 操作會將您導(dǎo)航到將類型用作依賴項的位置。Android Studio 還支持對使用 Jetpack Hilt 庫定義的依賴項執(zhí)行導(dǎo)航操作。您可以閱讀 官方文檔 了解詳情。

使用 TensorFlow Lite 模型

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

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

image

構(gòu)建和測試

Android 模擬器 - 可折疊設(shè)備鉸鏈信息支持

Android Studio

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

Apply Changes 更新

更快的構(gòu)建有助于開發(fā)者更輕松、快速地更改應(yīng)用。為了幫助您提高應(yīng)用迭代效率,我們對 Android 11 或更高版本設(shè)備的 Apply Changes 進行了多項增強。

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

從 AAR 中導(dǎo)出 C/C++ 依賴項

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

buildFeatures {
    prefabPublishing true
}

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

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

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

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

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

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

優(yōu)化

System Trace 界面改進

在 Android Studio 4.1 中,我們對 System Trace 進行了全面改進,該優(yōu)化工具可讓您實時了解應(yīng)用對系統(tǒng)資源的使用情況。通過框選模式還可以更輕松地選擇跟蹤記錄,此外,我們還添加了新的分析標簽頁,并添加了更多的幀渲染數(shù)據(jù),以幫助您調(diào)查應(yīng)用界面中的渲染問題。您可以閱讀 官方文檔 了解詳情。

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

Summary 選項卡: Analysis 面板中全新的 Summary 選項卡會顯示以下內(nèi)容:

  • 特定事件的所有實例的匯總統(tǒng)計信息,例如實例計數(shù)和最小/最大持續(xù)時間。
  • 選定實例的跟蹤事件統(tǒng)計信息。
  • 有關(guān)線程狀態(tài)分布的數(shù)據(jù)。
  • 所選跟蹤事件內(nèi)運行時間最長的實例。

△ 在 Summary 選項卡中查看匯總統(tǒng)計信息

顯示數(shù)據(jù): 在 Display 部分,SurfaceFlingerVSYNC 的新時間軸可幫助您調(diào)查應(yīng)用界面中的渲染問題。

獨立分析器

現(xiàn)在可以在獨立于 Android Studio 主窗口的單獨窗口中訪問 Android Studio 分析器。在優(yōu)化使用其他工具 (如 Unity 或 Visual Studio) 構(gòu)建的 Android 游戲時,此功能十分有用。

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

  1. 確保您的系統(tǒng)現(xiàn)在沒有運行 Android Studio 中的分析器。

  2. 轉(zhuǎn)到安裝目錄并導(dǎo)航到 bin 目錄:

Windows/Linux:

<studio-installation-folder>\bin

macOS:

<studio-installation-folder>/Contents/bin

  1. 根據(jù)您的操作系統(tǒng),運行 profiler.exeprofiler.sh

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

原生內(nèi)存性能分析器

跟蹤原生內(nèi)存的使用情況對于游戲開發(fā)者和其他使用 C++ 的開發(fā)者十分重要,他們可以據(jù)此優(yōu)化其應(yīng)用的內(nèi)存使用。Android Studio 內(nèi)存性能分析器 (Memory Profiler) 現(xiàn)在包含一個原生內(nèi)存性能分析器 (Native Memory Profiler),專門用于運行在 Android 10 或更高版本的實體設(shè)備上的應(yīng)用。原生內(nèi)存性能分析器可以跟蹤特定時間段內(nèi)原生代碼中對象的分配 / 銷毀情況,并提供內(nèi)存總體分配和系統(tǒng)堆剩余大小的信息。

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

總結(jié)

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

設(shè)計

  • Material Design 組件更新

開發(fā)

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

構(gòu)建和測試

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

優(yōu)化

  • System Trace 界面改進
  • 獨立分析器
  • 原生內(nèi)存性能分析器

文中資料并非由 Unity Technologies 或其附屬公司贊助或與其有關(guān)聯(lián)?!癠nity”是 Unity Technologies 或其附屬公司在美國和其他地區(qū)的商標或注冊商標。

最后我是小于哥,致力于技術(shù)分享和研發(fā),歡迎關(guān)注我的微信公眾號【終端研發(fā)部】,關(guān)注即可領(lǐng)取java金九銀十面試題1份,覺得不錯可以給我三連擊哦,奧利給~

作者:谷歌開發(fā)者
本文作者 / Scott Swarthout, 產(chǎn)品經(jīng)理
鏈接:http://www.itdecent.cn/p/fc9f6a5dd52a
來源:簡書

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容