作者 /產(chǎn)品經(jīng)理 Amanda Alexander
Android Jetpack
https://developer.android.google.cn/jetpack
現(xiàn)代 Android 開發(fā)
https://developer.android.google.cn/modern-android-development
Google Play 上的大多數(shù)應(yīng)用都使用 Jetpack 作為其應(yīng)用架構(gòu)的關(guān)鍵組件。事實(shí)上,在排行前 1,000 的應(yīng)用中,超過 90% 的應(yīng)用都使用了 Android Jetpack。
架構(gòu)庫及相關(guān)指南
應(yīng)用性能 界面庫及相關(guān)指南
架構(gòu)庫及相關(guān)指南
應(yīng)用架構(gòu)庫和組件可確保應(yīng)用的穩(wěn)健性、可測(cè)試性及可維護(hù)性。
借助 WorkManager 庫,您可以輕松調(diào)度必須可靠運(yùn)行的可延期異步任務(wù),例如上傳備份或分析。通過這些 API,您可以創(chuàng)建任務(wù)并提交給 WorkManager,以便在滿足工作約束條件時(shí)運(yùn)行。
WorkManager
https://developer.android.google.cn/jetpack/androidx/releases/work
更新后的 WorkManager2.8.0-alpha04 能以非干擾的方式更新 WorkRequest,從而保持其原始排隊(duì)時(shí)間、工作鏈等。借助 WorkManager,開發(fā)者可以更輕松地更改工作器的約束條件。例如,當(dāng)我們需要將約束條件從一個(gè)應(yīng)用版本更改為另一個(gè)版本或通過服務(wù)器端設(shè)置的配置進(jìn)行更改時(shí)。在過去,只有通過取消已調(diào)度的工作器再重新調(diào)度才能更改約束條件。但是這種方法會(huì)造成嚴(yán)重混亂: 處于運(yùn)行狀態(tài)的工作器可能需要停止運(yùn)行;按一定周期運(yùn)行的工作器的節(jié)奏可能會(huì)被打亂;并且當(dāng)其中一個(gè)工作器需要進(jìn)行更新時(shí),整個(gè)工作器鏈都需要重新構(gòu)建。而現(xiàn)在,使用 update 方法或 ExistingPeriodicWorkPolicy.UPDATE,開發(fā)者便無需擔(dān)心這些問題。
WorkManager 2.8.0-alpha04
https://developer.android.google.cn/jetpack/androidx/releases/work#2.8.0-alpha04
更新 WorkRequest
https://developer.android.google.cn/reference/androidx/work/WorkManager#updateWork(androidx.work.WorkRequest)
Room
https://developer.android.google.cn/jetpack/androidx/releases/room
Activity
https://developer.android.google.cn/jetpack/androidx/releases/activity#version_160_3
通過直接使用 ComponentActivity,或 FragmentActivity 或 AppCompatActivity 的任一子類,您可以使用單個(gè) API 來通過照片選擇器選擇圖像,但前提是它可以自動(dòng)回退到存儲(chǔ)訪問框架以支持向后兼容 Android 4.4 (API 19)。
照片選擇器
https://developer.android.google.cn/training/data-storage/shared/photopicker
預(yù)測(cè)性返回手勢(shì)
https://developer.android.google.cn/guide/navigation/predictive-back-gesture
自定義返回導(dǎo)航
https://developer.android.google.cn/guide/navigation/navigation-custom-back
使用 Paging 測(cè)試庫測(cè)試分頁
Paging
https://developer.android.google.cn/topic/libraries/architecture/paging/v3-overview
Paging 3.2.0-alpha03
https://developer.android.google.cn/jetpack/androidx/releases/paging#3.2.0-alpha03
新的架構(gòu)文檔
新的架構(gòu)建議頁面
https://developer.android.google.cn/topic/architecture/recommendations
我們團(tuán)隊(duì)最近發(fā)布了新的模塊化指南。該指南分為兩個(gè)部分:
概覽頁面對(duì)相關(guān)問題作出高層次的理論性概述。 常見模塊化模式頁面深入介紹現(xiàn)代 Android 架構(gòu)背景下的實(shí)用示例。
概覽頁面
https://developer.android.google.cn/topic/modularization
常見模塊化模式頁面
https://developer.android.google.cn/topic/modularization/patterns
狀態(tài)容器和界面狀態(tài)頁面說明您可以在界面層中找到的不同類型的狀態(tài)容器,以及根據(jù)要執(zhí)行的邏輯類型判斷應(yīng)使用哪種實(shí)現(xiàn)。
狀態(tài)生成頁面展示有關(guān)如何根據(jù)狀態(tài)變更的來源對(duì)界面狀態(tài)進(jìn)行建模并公開的最佳實(shí)踐。
界面層文檔
https://developer.android.google.cn/topic/architecture/ui-layer
狀態(tài)容器和界面狀態(tài)頁面
https://developer.android.google.cn/topic/architecture/ui-layer/stateholders
狀態(tài)生成頁面
https://developer.android.google.cn/topic/architecture/ui-layer/state-production
界面事件頁面
https://developer.android.google.cn/topic/architecture/ui-layer/events
Navigation 界面事件
https://developer.android.google.cn/topic/architecture/ui-layer/events#navigation-events
全新 Navigation 指南
https://developer.android.google.cn/guide/navigation/navigation-type-safety
構(gòu)建離線優(yōu)先應(yīng)用指南
https://developer.android.google.cn/topic/architecture/data-layer/offline-first
利用 ViewModel,您可以將狀態(tài)容器模式納入界面層中。我們最近更新了相關(guān)文檔,其中包含以下內(nèi)容:
關(guān)于 ViewModel 工作原理及適用范圍的概覽。 如何在不使用適用于使用 Hilt 注入 ViewModel 對(duì)象的預(yù)構(gòu)建支持的情況下利用依賴項(xiàng)創(chuàng)建 ViewModel。
關(guān)于 ViewModel 的適用范圍及啟用該支持的 API 的詳情。
ViewModel 如何通過 ViewModel 的已保存狀態(tài)模塊在進(jìn)程終止和恢復(fù)的過程中保存狀態(tài)。
ViewModel
https://developer.android.google.cn/topic/libraries/architecture/viewmodel
狀態(tài)容器模式
https://developer.android.google.cn/topic/architecture/ui-layer/stateholders
概覽
https://developer.android.google.cn/topic/libraries/architecture/viewmodel
使用 Hilt 注入 ViewModel 對(duì)象
https://developer.android.google.cn/training/dependency-injection/hilt-jetpack#viewmodels
利用依賴項(xiàng)創(chuàng)建 ViewModel
https://developer.android.google.cn/topic/libraries/architecture/viewmodel/viewmodel-factories
ViewModel 的適用范圍
https://developer.android.google.cn/topic/libraries/architecture/viewmodel/viewmodel-apis
ViewModel 的已保存狀態(tài)模塊
https://developer.android.google.cn/topic/libraries/architecture/viewmodel/viewmodel-savedstate
應(yīng)用性能
通過使用性能庫,您可以構(gòu)建高性能的應(yīng)用,并有針對(duì)性的優(yōu)化以保持其性能表現(xiàn),從而提供更好的最終用戶體驗(yàn)。
基準(zhǔn)配置文件
https://developer.android.google.cn/studio/profile/baselineprofiles
在 AGP 7.3 中,基準(zhǔn)配置文件工具是完全穩(wěn)定的,因此您無需使用 alpha 依賴項(xiàng)也可以在應(yīng)用首次啟動(dòng)時(shí)及應(yīng)用每次更新后滾動(dòng)時(shí)將性能提升 30% 以上。
在 profileinstaller:1.3.0-alpha01 中,您可以使用 ProfileVerifier 檢測(cè)字段中的配置文件編譯。此外,從 Android Studio Flamingo Canary 6 開始,Studio APK Inspector 現(xiàn)在會(huì)顯示 APK 基準(zhǔn)配件文件的內(nèi)容。
ProfileVerifier
https://developer.android.google.cn/reference/androidx/profileinstaller/ProfileVerifier
啟動(dòng)指標(biāo)是衡量應(yīng)用性能的重要組成部分,但是系統(tǒng) (以及 Benchmark 庫) 需要獲取標(biāo)志啟動(dòng)階段完成的信號(hào)才能進(jìn)行測(cè)量。這個(gè)信號(hào)便是 Activity 對(duì) reportFullyDrawn() 的調(diào)用。Activity 1.7.0-alpha01 以 FullyDrawnReporter API 的形式添加了新的 API,允許多個(gè)組件在它們準(zhǔn)備好交互時(shí)進(jìn)行報(bào)告。ComponentActivity 將等待所有組件完成報(bào)告后再代表您調(diào)用 reportFullyDrawn()。
Activity
https://developer.android.google.cn/jetpack/androidx/releases/activity
在完成啟動(dòng)后向 Android 運(yùn)行時(shí)發(fā)送信號(hào),以確保在多幀啟動(dòng)序列中運(yùn)行的所有代碼都包括在內(nèi),并優(yōu)先用于后臺(tái)編譯。
在您的應(yīng)用應(yīng)被視為完全繪制啟動(dòng)指標(biāo)時(shí),向 Macrobenchmark 和 Play Vitals 發(fā)送信號(hào),以便跟蹤應(yīng)用性能。
我們新增了兩個(gè) Activity Compose API: ReportDrawnWhen 和 ReportDrawnAfter,以使其更方便地從單個(gè)可組合項(xiàng)中使用 FullyDrawnReporter。
重組跟蹤
我們最近發(fā)布了首個(gè) alpha 版的 Jetpack Compose 組合跟蹤 (Composition Tracing),這個(gè)工具可讓您在 Android Studio 系統(tǒng)跟蹤記錄分析器中查看可組合函數(shù)。此功能既有系統(tǒng)跟蹤的低干擾性優(yōu)勢(shì),又有組合中函數(shù)跟蹤的詳細(xì)程度。通過在 Compose Runtime Tracing 上添加依賴項(xiàng),您便能夠在 Android Studio Flamingo Canary 5 系統(tǒng)跟蹤記錄中看到重組調(diào)用堆棧的跟蹤記錄,然后點(diǎn)擊即可直接導(dǎo)航到代碼!您可以參閱相關(guān)文檔,了解關(guān)于此功能以及如何在項(xiàng)目中進(jìn)行設(shè)置的更多內(nèi)容。
相關(guān)文檔
https://medium.com/androiddevelopers/jetpack-compose-composition-tracing-9ec2b3aea535
界面庫及相關(guān)指南
其中包含的組件包括:
Button: 可點(diǎn)擊的圓形對(duì)象,包含圖標(biāo)、文本或圖片 (具有 3 種預(yù)定義的尺寸)。 Chip: 可點(diǎn)擊的體育場(chǎng)形對(duì)象,可以包含圖標(biāo)、主標(biāo)簽和次級(jí)標(biāo)簽,并且具有固定的高度和可自定義的寬度。 CompactChip 和 TitleChip: 標(biāo)準(zhǔn) Chip 的兩個(gè)變體,但高度不同 (一個(gè)較矮,一個(gè)較高),可以包含一行文本。 CircularProgressIndicator: 位于屏幕邊緣周圍的彩色弧線,具有給定的起始角度和結(jié)束角度,可描繪一個(gè)完整或部分的圓圈,后面顯示完整的進(jìn)度弧。 Text: 使用建議的 Wear Material 排版樣式的風(fēng)格化文本。
Button https://developer.android.google.cn/reference/androidx/wear/tiles/material/Button Chip https://developer.android.google.cn/reference/androidx/wear/tiles/material/Chip CompactChip https://developer.android.google.cn/reference/androidx/wear/tiles/material/CompactChip TitleChip https://developer.android.google.cn/reference/androidx/wear/tiles/material/TitleChip CircularProgressIndicator https://developer.android.google.cn/reference/androidx/wear/tiles/material/CircularProgressIndicator Text https://developer.android.google.cn/reference/androidx/wear/tiles/material/Text
除組件外,Material 指南中還包含一些推薦的卡片布局。您可以閱讀相關(guān)博文,了解更多關(guān)于 Wear OS Tiles Material 庫的信息。
相關(guān)博文
https://android-developers.googleblog.com/2022/08/wear-os-tiles-material-library-build-tiles-fast.html
SplashScreen
https://developer.android.google.cn/jetpack/androidx/releases/core#core-splashscreen-1.0.0
指南
https://developer.android.google.cn/guide/topics/ui/splash-screen/migrate#migrate_your_splash_screen_implementation
官方文檔
https://developer.android.google.cn/guide/topics/ui/splash-screen
其他重要更新
CameraX庫
https://developer.android.google.cn/jetpack/androidx/releases/camera示例代碼
https://github.com/androidx/androidx/blob/androidx-main/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/MlKitFragment.kt
Zero-Shutter Lag APIhttps://developer.android.google.cn/reference/androidx/camera/core/ImageCapture#CAPTURE_MODE_ZERO_SHUTTER_LAG
Annotation 庫
https://developer.android.google.cn/jetpack/androidx/releases/annotation
Annotation 1.5 穩(wěn)定版本已經(jīng)完全遷移至 Kotlin 源代碼,因此支持特定于 Kotlin 的目標(biāo)使用網(wǎng)站和其他與 Kotlin 兼容的注解功能。
我們一直在嘗試使 Jetbrains 的 Kotlin 多平臺(tái)移動(dòng)版支持跨平臺(tái)共享代碼。我們針對(duì) Android 和 iOS 應(yīng)用推出了實(shí)驗(yàn)性的 Collection 預(yù)覽版和 DataStore 庫。期待您的反饋!您可以查看相關(guān)博文,了解更多內(nèi)容。
Collection
https://developer.android.google.cn/jetpack/androidx/releases/collection
DataStore
https://developer.android.google.cn/topic/libraries/architecture/datastore
相關(guān)博文
https://android-developers.googleblog.com/2022/10/announcing-experimental-preview-of-jetpack-multiplatform-libraries.html
版本說明
https://developer.android.google.cn/jetpack/androidx/versions
API 選取器
https://developer.android.google.cn/jetpack/androidx/explorer?case=popular
視頻
https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u
也歡迎您持續(xù)關(guān)注我們,及時(shí)了解更多開發(fā)技術(shù)和產(chǎn)品更新等資訊動(dòng)態(tài)。
原文標(biāo)題:Jetpack 更新一覽 | 2022 Android 開發(fā)者峰會(huì)
文章出處:【微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
谷歌
+關(guān)注
關(guān)注
27文章
6128瀏覽量
104952
原文標(biāo)題:Jetpack 更新一覽 | 2022 Android 開發(fā)者峰會(huì)
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論