Android Jetpack 是現代 Android 開發 (Modern Android Development) 的關鍵組成支柱。Android Jetpack 套件包含超 100 個庫、工具及指南,可幫助開發者遵循最佳實踐、減少樣板代碼,并編寫可在各種 Android 版本和設備中一致運行的代碼,以便您可以專注于為應用構建特色功能。Google Play 上的大多數應用都使用 Jetpack 進行開發,事實上,在排行榜前 1,000 的應用中,超過 90% 的應用都使用了 Jetpack。
- Android Jetpackhttps://developer.android.google.cn/jetpack
- 現代 Android 開發https://developer.android.google.cn/modern-android-development
下面我們將介紹 Jetpack 三大主要領域的近期更新亮點:
- 架構庫及相關指南
-
應用性能優化
-
界面庫及相關指南
最后,我們會在本文結尾部分介紹一些其他關鍵更新。
架構庫及相關指南
應用架構庫和組件可確保應用的穩健性、可測試性及可維護性。
數據持久化
大多數應用都需要持久化本地狀態,無論是緩存結果、管理用戶輸入數據的本地列表,還是為界面中返回的數據提供支持。Room 是我們推薦的數據持久化層,它在 SQLite 的基礎上提供了一個抽象層,從而提高了平臺的易用性和安全性。
-
Room
https://developer.android.google.cn/jetpack/androidx/releases/room
在 Room 中,我們引入了許多全新功能,比如新增 Upsert 操作 (如果不存在唯一性沖突,Upsert 會嘗試插入實體;如果存在沖突,Upsert 則會嘗試更新實體),以及支持在 KSP 中使用 Kotlin 值類。這些新功能可以在 Room 2.6-alpha 版本中使用,其中所有的庫源代碼均以 Kotlin 編寫,同時支持 Java 編程語言和 Kotlin 代碼生成。
-
Room 2.6-alpha 版本
https://developer.android.google.cn/jetpack/androidx/releases/room#2.6.0-alpha01
使用 WorkManager 管理任務
借助 WorkManager 庫,您可以輕松調度必須可靠運行的可延期異步任務,例如上傳備份或分析。使用這些 API,您可以創建任務并將其提交給 WorkManager,以便在滿足工作約束條件時運行。 現在,您可以借助 WorkManager 在您已將 WorkRequest 加入隊列的情況下對其進行更新。在經常更改約束條件或需要實時更新工作器的大型應用中,這種操作通常十分必要。自 WorkManager 2.8.0 版起,您可以使用 updateWork() API 來實現這一目的,而無需進行手動取消并將新的 WorkRequest 加入隊列的步驟。這大大簡化了開發過程。
-
WorkManager 2.8.0 版
https://developer.android.google.cn/jetpack/androidx/releases/work
DataStore
DataStore 庫是一個強大的數據存儲解決方案,可解決關于 SharedPreferences 的問題,并提供基于新式協程的 API。
-
DataStore
https://developer.android.google.cn/jetpack/androidx/releases/datastore
在 DataStore 1.1 Alpha 版中,我們增加了一個備受期待的功能: 多進程支持。您可借此從多個進程訪問 DataStore,同時獲得進程之間的數據一致性保證。我們還推出了其他功能,包括新的存儲接口,可以切換 DataStore 的底層存儲機制 (我們已提供適用于 java.io 和 okio 的實現)。此外,我們還增加了對 Kotlin 多平臺的支持。
-
DataStore 1.1 Alpha 版
https://developer.android.google.cn/jetpack/androidx/releases/datastore#1.1.0-alpha04
生命周期管理
生命周期感知型組件可執行操作來響應另一個組件 (如 activity 和 fragment) 的生命周期狀態的變化。這些組件有助于您寫出更有條理且往往更精簡的代碼,這樣的代碼更易于維護。
我們發布了 Lifecycle 2.6.0 穩定版,其中包括更多 Compose 集成。我們在 Flow 上新增了一個擴展方法,即 collectAsStateWithLifecycle()。該擴展從數據流中收集數據,并以可感知生命周期的方式將其最新值表示為 Compose 狀態。此外,該擴展將大量的類轉換為 Kotlin,并且仍然保留與之前版本的二進制兼容性。
-
Lifecycle 2.6.0
https://developer.android.google.cn/jetpack/androidx/releases/lifecycle#2.6.0
-
將其最新值表示為 Compose 狀態
https://medium.com/androiddevelopers/consuming-flows-safely-in-jetpack-compose-cde014d0d5a3
預測性返回手勢
在 Android 13 中,我們為手機、大屏設備和可折疊設備等 Android 設備引入了預測性返回手勢。該功能的發布歷程跨度將達多年;在完全實現后,該功能可讓用戶在完全完成某個返回手勢之前就能預覽此手勢完成后的目的地或其他結果,以便用戶能夠決定是繼續完成手勢還是留在當前視圖中。
Android 預測性返回的 Activity API 較為穩定,并且我們已更新使用受支持的系統返回回調函數的最佳實踐,包括 BackHandler (用于 Compose)、OnBackPressedCallback 或 OnBackInvokedCallback。我們很高興看到許多 Google 應用采用預測性返回功能,包括 Google Play 商店、Google 日歷、Google 新聞和 Google TV!
-
最佳實踐
https://developer.android.google.cn/guide/navigation/predictive-back-gesture#best-practices
在 Activity 1.8 Alpha 版中,除了之前用于處理返回手勢的 handleOnBackPressed() 回調,OnBackPressedCallback 類現包含新的預測性返回進度回調,可用于處理返回手勢的開始、整個手勢的進展以及返回手勢的取消。我們還添加了 ComponentActivity.setUpEdgeToEdge(),以向后兼容的方式輕松設置全屏顯示。
Activity更新帶來更加一致的
照片選擇器體驗
Android 照片選擇器是一個可瀏覽界面,用于展示用戶的媒體庫。在 Activity 1.7.0 版中,我們更新了照片選擇器 Activity 協定,以包含一個額外的回退,這允許原始設備制造商 (OEM) 和 Google Play 服務等系統應用通過實現回退操作,在更廣泛的 Android 設備和 API 級別上提供一致的照片選擇器體驗。如需了解詳細信息,您可以參閱相關文章。
-
Activity 1.7.0 版
https://developer.android.google.cn/jetpack/androidx/releases/activity#1.7.0
-
相關文章
https://android-developers.googleblog.com/2023/04/photo-picker-everywhere.html
漸進式數據提取
使用 Paging 庫,您可以加載和顯示小型數據片段,以改善網絡和系統資源消耗。應用數據可以在 RecyclerViews 或 Compose 延遲列表中逐步妥善地加載。
-
Paging
https://developer.android.google.cn/jetpack/androidx/releases/paging
Paging Compose 1.0.0-alpha19 版支持所有的延遲布局,包括由 Wear 和 TV 庫提供的自定義布局。為了支持更多延遲布局,Paging Compose 目前在 LazyPagingItems 的 itemKey 和 itemContentType 中提供略低級別的擴展方法。這些 API 旨在幫助您實現 LazyColumn、LazyVerticalGrid 及其 API 中的等效項 (如 HorizontalPager) 的已有標準項目 API 的 Key 和 contentType 參數。雖然這些變化確實讓 LazyColumn 和 LazyRow 的示例增加了幾行內容,但它確保了所有延遲布局的一致性。
-
Paging Compose 1.0.0-alpha19 版
https://developer.android.google.cn/jetpack/androidx/releases/paging#1.0.0-alpha19
應用性能優化
通過使用性能庫,您可以構建高性能的應用,并有針對性的優化以保持其性能表現,從而提供更好的最終用戶體驗。
縮短啟動時間
借助基準配置文件,您可以在安裝應用時部分編譯應用,以提高運行時和啟動的性能,并在新的工具和庫中獲得大幅提升:
-
基準配置文件
https://developer.android.google.cn/topic/performance/baselineprofiles/overview
Jetpack 在 Alpha 版本中提供了一個新的基準配置文件 Gradle 插件,該插件支持 AGP 8.0 及更高版本,并且您可以在 Studio Hedgehog (目前處于 Canary 版) 中輕松添加至項目。該插件可以將一系列任務自動化,如運行生成任務、從設備中提取配置文件,并定期或作為發布流程的一部分將其整合到您構建的版本中。
-
基準配置文件 Gradle 插件
https://developer.android.google.cn/topic/performance/baselineprofiles/create-baselineprofile#baseline-profile-gradle-plugin
-
在 Studio Hedgehog (目前處于 Canary 版) 中輕松添加至項目
https://developer.android.google.cn/studio/preview
借助該插件,您亦可在 AGP 8.1 版中輕松自動化新的 Dex 布局優化功能,以便您定義 BaselineProfileRule 測試。此類測試會收集啟動時使用的類,并將它們移至 MultiDex 應用中的 Dex 主要文件,從而提高局部性。在大型應用中,該插件可以讓冷啟動時間在基準配置文件的基礎上縮短 30%!
-
新的 Dex 布局優化功能
https://developer.android.google.cn/topic/performance/baselineprofiles/overview
-
PowerMetric
https://developer.android.google.cn/reference/androidx/benchmark/macro/PowerMetric
-
自定義軌跡指標
https://developer.android.google.cn/reference/androidx/benchmark/macro/TraceMetric
您可以在《Android 性能更新》文章中深入了解所有相關內容。
-
Android 性能更新
https://medium.com/androiddevelopers/whats-new-in-android-performance-google-i-o-2023-edition-21a1832c9fa3
界面庫及相關指南
我們對界面庫進行了幾項更新,以更好地支持大屏幕兼容性、可折疊設備和表情符號。
Jetpack Compose
Jetpack Compose 是 Android 用于構建原生界面的現代工具包,最近發布了 2023 年 5 月版本,其中不僅包括文本和布局的新功能、持續的性能改進、增強的工具支持、對大屏設備的更多支持,還包括更新后的指南。您可以閱讀《Jetpack Compose 的新功能》I/O 大會文章了解詳情。
-
2023 年 5 月版本
https://developer.android.google.cn/jetpack/androidx/releases/compose#2023.05.00
-
Jetpack Compose 的新功能
https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-compose.html
Glance
Glance 庫現在推出了 1.0-beta 版,可以讓您使用 Jetpack Compose 開發針對 Android 手機、平板電腦和可折疊主屏幕優化的應用微件 (widget)。該庫使用 Kotlin 和 Compose,為您提供開箱即用的最新 Android widget 改進。
-
Glance
https://developer.android.google.cn/jetpack/androidx/releases/glance
-
1.0-beta 版
https://developer.android.google.cn/jetpack/androidx/releases/glance#version_100_2
-
應用微件 (widget)
https://developer.android.google.cn/develop/ui/views/appwidgets/overview
-
Android widget 改進
https://developer.android.google.cn/about/versions/12/features/widgets
Compose for TV
TV 庫 Alpha 版發布后,您現在可以使用針對客廳體驗優化的組件為 Android TV 打造出色體驗。Compose for TV 可以讓 TV 應用享受 Jetpack Compose 的各項優勢,使您能夠以更少的代碼、更便捷的維護以及現代 Material 3 外觀直接構建應用。您可以參閱《Compose for TV》文章了解更多詳情。
-
TV 庫
https://developer.android.google.cn/jetpack/androidx/releases/tv
-
Compose for TV
https://android-developers.googleblog.com/2023/05/building-pixel-perfect-living-room-experiences-compose-for-tv.html
Material 3 for Compose
Material Design 3 是 Material Design 的新一代版本,幫助您構建富有表現力、生動個性的應用。Material 3 是 Android 應用的推薦設計系統,1.1 穩定版更是引入了激動人心的新功能,如底部動作條、日期和時間選擇器、搜索欄、提示,并增加了更多動作和交互支持。如需了解詳細信息,您可以參閱版本說明文章。
-
Material Design 3
https://m3.material.io/
-
1.1 穩定版
https://developer.android.google.cn/reference/kotlin/androidx/compose/material3/package-summary
-
版本說明文章
https://material.io/blog/material-3-compose-1-1
了解窗口狀態
新的 WindowManager 庫為 API 版本 14 及更高版本提供了一個通用式 API 接口,可幫助開發者為新的設備外形規格和多窗口環境提供支持。
-
WindowManager
https://developer.android.google.cn/jetpack/androidx/releases/window
-
1.1.0-beta01 版
https://developer.android.google.cn/jetpack/androidx/releases/window#1.1.0-beta01
其他關鍵更新
Kotlin 多平臺
我們繼續對使用 Kotlin 多平臺在 Android 和 iOS 之間共享業務邏輯進行實驗。我們更新了 Collections 1.3.0-alpha03 版和 DataStore 1.1.0-alpha02 版,以便您現在可以在 KMM 項目中使用這些庫。如果您在應用中使用 Kotlin 多平臺,我們期待收到您的反饋!
-
Kotlin 多平臺
https://developer.android.google.cn/kotlin/multiplatform
-
Collections 1.3.0-alpha03 版
https://developer.android.google.cn/jetpack/androidx/releases/collection#1.3.0-alpha03
-
DataStore 1.1.0-alpha02 版
https://developer.android.google.cn/jetpack/androidx/releases/datastore#1.1.0-alpha02
-
KMM
https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html
-
反饋
https://issuetracker.google.com/issues/new?component=1337890&template=1803002
以上內容是過去幾個月中 Jetpack 的所有重要更新回顧,希望這些內容可以幫助您更高效地構建應用。如需了解每個 Jetpack 庫的更多詳情,您可以查看 AndroidX 版本說明;如需快速找到相關庫,您可以使用 API 選取器;如需了解其他精彩內容,您可以觀看 Google I/O 大會演講視頻。
-
AndroidX 版本說明
https://developer.android.google.cn/jetpack/androidx/versions
-
API 選取器
https://developer.android.google.cn/jetpack/androidx/explorer?case=popular
-
觀看 Google I/O 大會演講視頻
https://io.google/2023/program/
Java 是 Oracle 和/或其附屬公司的商標或注冊商標。
?點擊屏末|閱讀原文|即刻了解更多 Android Jetpack 相關信息
原文標題:在 I/O 看未來 | Jetpack 新功能一覽
文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
-
谷歌
+關注
關注
27文章
6164瀏覽量
105309
原文標題:在 I/O 看未來 | Jetpack 新功能一覽
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論