我們很高興發(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普筹,用于查詢應用的數(shù)據(jù)庫;支持瀏覽使用 Dagger 或 Hilt 進行依賴項注入的項目隘马;支持在 Android 項目中使用 TensorFlow Lite 模型太防,進一步增強了對設(shè)備端機器學習的支持。我們還對 Apply Changes 進行了更新祟霍,以加快部署速度杏头。我們根據(jù)大家的反饋進行了一些更改,引入了新的原生內(nèi)存性能分析器和獨立分析工具來為游戲開發(fā)者提供助力沸呐。
產(chǎn)品質(zhì)量仍然是團隊的主要關(guān)注點醇王,我們一直在努力解決錯誤和性能問題。從大家的反饋來看崭添,許多開發(fā)者十分認同我們專注于提高性能和可靠性的舉措寓娩。很高興地告訴大家,在本次發(fā)布周期中呼渣,我們修復了 2,370 個錯誤棘伴,解決了 275 個公共問題。高品質(zhì)是我們一貫堅持的目標屁置,因為我們知道這是提高開發(fā)者工作效率的關(guān)鍵焊夸。
許多用戶在預覽版中提供了早期反饋,在此對大家表示感謝蓝角。正是有了各位的反饋阱穗,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
拓挥〗螅基礎(chǔ)應用主題使用Theme.MaterialComponents
父級,并覆蓋更新后的 MDC 顏色和 "on" 屬性撞叽。 -
顏色資源:
colors.xml
中的顏色資源使用字面名稱 (例如,使用purple_500
而不是colorPrimary
)插龄。 -
主題資源: 主題資源位于
themes.xml
(而非styles.xml
) 中并使用Theme.<ApplicationName>
名稱愿棋。 -
深色主題: 基礎(chǔ)應用主題使用
DayNight
父級,并分為res/values
和 res/values-night
均牢。 -
主題屬性: 在布局和樣式中將顏色資源稱為主題屬性 (例如
?attr/colorPrimary
)糠雨,以避免硬編碼顏色。
開發(fā)
Database Inspector
我們希望借助新的 Database Inspector 來簡化應用數(shù)據(jù)庫的檢查徘跪、查詢和修改操作甘邀。首先,將您的應用部署到運行 API 26 或更高級別的設(shè)備垮庐,然后從菜單中依次選擇 View > Tool Windows > Database Inspector松邪。無論您的應用是直接使用 Jetpack Room 開發(fā)庫還是 Android 平臺版本的 SQLite,您現(xiàn)在都可以輕松檢查正在運行的應用中的數(shù)據(jù)庫和表哨查,或運行自定義查詢逗抑。
由于 Android Studio 在您檢查應用時會保持實時連接,因此您也可以使用 Database Inspector 對數(shù)值進行修改寒亥,并在運行的應用中查看結(jié)果邮府。如果您使用 Room 持久庫,Android Studio 還會在代碼編輯器的每個查詢旁邊插入運行按鈕溉奕,以幫助您快速運行在 @Query 注解中定義的查詢褂傀。您可以閱讀 官方文檔 了解詳情。
直接在 Android Studio 中運行 Android 模擬器
現(xiàn)在仙辟,您可以直接在 Android Studio 中運行 Android 模擬器。此功能有助于節(jié)省屏幕空間胸竞,您可以使用熱鍵在模擬器和編輯器窗口之間快速導航欺嗤,并在一個應用窗口中組織您的 IDE 和模擬器工作流。您可以在 Studio 中管理快照以及旋轉(zhuǎn)和截圖等常見的模擬器操作卫枝,但要使用全部功能選項煎饼,仍然需要使用穩(wěn)定的模擬器。您可以按照這個菜單路徑啟用此功能: File → Settings → Tools → Emulator → Launch in Tool Window校赤。
Dagger 導航支持
Dagger 是 Android 上常用的依賴項注入庫吆玖。Android Studio 提供了新的 gutter 操作并擴展了 Find Usages 窗口中的支持筒溃,使得在 Dagger 相關(guān)代碼之間導航更加簡單。例如沾乘,點擊使用給定類型的方法旁邊的
使用 TensorFlow Lite 模型
目前滥崩,Android 開發(fā)者紛紛利用機器學習來打造新穎、實用的體驗讹语。TensorFlow Lite 是常見的用于編寫移動端機器學習模型的開發(fā)庫钙皮,我們希望簡化將這些模型導入 Android 應用的過程。與視圖綁定類似顽决,Android Studio 會生成易于使用的類短条,幫助您精簡運行模型所需的代碼并提升類型安全性。ML Model Binding (ML 模型綁定) 當前的實現(xiàn)支持圖像分類和風格轉(zhuǎn)換模型才菠,前提是它們通過元數(shù)據(jù)得到了增強茸时。
要查看導入模型的詳細信息以及如何在應用中使用,請雙擊項目中的 .tflite 模型文件以打開模型查看器頁面赋访。您可以閱讀 官方文檔 了解詳情屹蚊。
構(gòu)建和測試
Android 模擬器 - 可折疊設(shè)備鉸鏈信息支持
Android Studio
除了最近新增的 5G 移動網(wǎng)絡(luò)測試 功能,我們還在 Android 模擬器中增加了對可折疊設(shè)備的支持进每。在 Android 模擬器 30.0.26 及更高版本中汹粤,您可以使用多種折疊設(shè)計和配置對可折疊設(shè)備進行設(shè)置。設(shè)置完畢后田晚,模擬器將提供鉸鏈角度傳感器和姿態(tài)變化信息嘱兼,方便您測試應用在這些機型上的響應情況。請參閱博文《使用 Android 模擬器在 Android 11 上進行開發(fā)》了解更多贤徒。
Apply Changes 更新
更快的構(gòu)建有助于開發(fā)者更輕松芹壕、快速地更改應用。為了幫助您提高應用迭代效率接奈,我們對 Android 11 或更高版本設(shè)備的 Apply Changes 進行了多項增強踢涌。
我們在優(yōu)化迭代速度上進行了大力投入,開發(fā)出一種無需安裝應用即可在設(shè)備上部署和保存更改的方法⌒蚧拢現(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 按鈕將這些更改部署到正在運行的應用中钳降。
從 AAR 中導出 C/C++ 依賴項
Android Gradle Plugin 4.0 增加了 在 AAR 依賴項中導入 Prefab 軟件包 的功能厚宰。我們希望擴展此功能以共享原生庫。AGP 4.1 支持在 Android 庫項目的 AAR 中從外部原生構(gòu)建中導出庫遂填。要導出原生庫铲觉,請將以下內(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ù)序列的快照备燃。這些快照可以幫助您識別和修復源代碼中的問題,但是必須首先將它們符號化凌唬,以將計算機地址轉(zhuǎn)換回人類可讀的函數(shù)名。
如果您的應用或游戲是使用 C++ 之類的原生代碼開發(fā)的漏麦,那么您現(xiàn)在可以將每個版本應用的調(diào)試符號文件上傳到 Play 管理中心客税。Play 管理中心使用這些調(diào)試符號文件來符號化您應用的堆棧軌跡,從而簡化崩潰和 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)化工具可讓您實時了解應用對系統(tǒng)資源的使用情況秧均。通過框選模式還可以更輕松地選擇跟蹤記錄,此外号涯,我們還添加了新的分析標簽頁目胡,并添加了更多的幀渲染數(shù)據(jù),以幫助您調(diào)查應用界面中的渲染問題链快。您可以閱讀 官方文檔 了解詳情誉己。
框選 : 在 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 部分,SurfaceFlinger 和 VSYNC 的新時間軸可幫助您調(diào)查應用界面中的渲染問題婆廊。
獨立分析器
現(xiàn)在可以在獨立于 Android Studio 主窗口的單獨窗口中訪問 Android Studio 分析器迅细。在優(yōu)化使用其他工具 (如 Unity 或 Visual Studio) 構(gòu)建的 Android 游戲時,此功能十分有用淘邻。
要運行獨立分析器茵典,請執(zhí)行以下操作:
確保您的系統(tǒng)現(xiàn)在沒有運行 Android Studio 中的分析器。
轉(zhuǎn)到安裝目錄并導航到 bin 目錄:
Windows/Linux:
<studio-installation-folder>\bin
macOS:
<studio-installation-folder>/Contents/bin
- 根據(jù)您的操作系統(tǒng)宾舅,運行
profiler.exe
或profiler.sh
獨立分析器可連接到 Android Emulator 或其他已連接的設(shè)備上统阿。
原生內(nèi)存性能分析器
跟蹤原生內(nèi)存的使用情況對于游戲開發(fā)者和其他使用 C++ 的開發(fā)者十分重要,他們可以據(jù)此優(yōu)化其應用的內(nèi)存使用筹我。Android Studio 內(nèi)存性能分析器 (Memory Profiler) 現(xiàn)在包含一個原生內(nèi)存性能分析器 (Native Memory Profiler)扶平,專門用于運行在 Android 10 或更高版本的實體設(shè)備上的應用。原生內(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 導航支持
- 使用 TensorFlow Lite 模型
構(gòu)建和測試
- Android 模擬器 - 可折疊設(shè)備鉸鏈信息支持
- Apply Changes 更新
- 從 AAR 中導出 C/C++ 依賴項
- 原生代碼崩潰報告符號化解析
優(yōu)化
- System Trace 界面改進
- 獨立分析器
- 原生內(nèi)存性能分析器
本文作者 / Scott Swarthout, 產(chǎn)品經(jīng)理
文中資料并非由 Unity Technologies 或其附屬公司贊助或與其有關(guān)聯(lián)麻献。“Unity”是 Unity Technologies 或其附屬公司在美國和其他地區(qū)的商標或注冊商標猜扮。