Android Jetpack簡介
2018年谷歌I/O 發(fā)布了一系列輔助android開發(fā)者的實(shí)用工具,合稱Jetpack,以幫助開發(fā)者構(gòu)建出色的 Android 應(yīng)用。
這次發(fā)布的 Android Jetpack 組件覆蓋以下 4 個方面:Architecture、Foundation、Behavior 以及 UI。包括我們在本次 Android P Beta 中帶來的 Slices等新功能也包含在其中。此外,Android Jetpack 完美兼容 Kotlin 語言,利用 Android KTX 可大幅節(jié)省代碼量。作為下一代的 Android 組件,Android Jetpack 通過提供現(xiàn)代化應(yīng)用架構(gòu)以及提供強(qiáng)健的向后兼容能力等方式,讓開發(fā)者能夠快速、輕松地創(chuàng)造擁有卓越性能的高質(zhì)量應(yīng)用。
新組件
Android Jetpack 附帶五個新組件:
- WorkManager alpha 版
- 導(dǎo)航 alpha 版
- 分頁穩(wěn)定版
- 切片 alpha 版
- Android KTX(Kotlin 擴(kuò)展程序)alpha 版
WorkManager
WorkMananager 組件是一個功能強(qiáng)大的新庫,可以為基于約束的后臺作業(yè)(需要有保障的執(zhí)行)提供一站式解決方案,消除了使用作業(yè)或 SyncAdapter 等框架的需求。WorkManager 提供了一個簡化的現(xiàn)代化 API、在安裝或未安裝 Google Play 服務(wù)的設(shè)備上運(yùn)行的功能、創(chuàng)建工作圖的功能以及查詢工作狀態(tài)的功能。早期反饋非常令人鼓舞,我們希望確保也能覆蓋您的用例。您可以了解我們目前已經(jīng)完成的工作,并提供對 WorkManager 組件 alpha 版的反饋。
導(dǎo)航
盡管 Activity 是系統(tǒng)提供的您的應(yīng)用界面的入口點(diǎn),但在相互分享數(shù)據(jù)以及轉(zhuǎn)場方面,Activity 表現(xiàn)得不夠靈活,這就讓它不適合作為構(gòu)建您的應(yīng)用內(nèi)導(dǎo)航的理想架構(gòu)。今天,我們宣布推出導(dǎo)航組件,作為構(gòu)建您的應(yīng)用內(nèi)界面的框架,重點(diǎn)是讓單 Activity 應(yīng)用成為首選架構(gòu)。利用導(dǎo)航組件對 Fragment 的原生支持,您可以獲得架構(gòu)組件的所有好處(例如生命周期和 ViewModel),同時讓此組件為您處理 FragmentTransaction 的復(fù)雜性。此外,導(dǎo)航組件還可以讓您聲明我們?yōu)槟幚淼霓D(zhuǎn)場。它可以自動構(gòu)建正確的“向上”和“返回”行為,包含對深層鏈接的完整支持,并提供了幫助程序,用于將導(dǎo)航關(guān)聯(lián)到合適的 UI 小部件,例如抽屜式導(dǎo)航欄和底部導(dǎo)航。但這些并不是全部! Android Studio 3.2 中的導(dǎo)航編輯器讓您可以直觀地查看和管理導(dǎo)航屬性:
導(dǎo)航組件 目前也處于 alpha 版階段,我們希望收到您的反饋。
分頁
應(yīng)用中呈現(xiàn)的數(shù)據(jù)可能非常大,這就導(dǎo)致加載的開銷比較大,因此,避免一次下載、創(chuàng)建或呈現(xiàn)過多數(shù)據(jù)就顯得非常重要。 分頁組件 1.0.0 版讓您可以輕松加載和呈現(xiàn)大型數(shù)據(jù)集,同時在您的 RecyclerView 中進(jìn)行快速、無限滾動。它可以從本地存儲和/或網(wǎng)絡(luò)加載分頁數(shù)據(jù),并讓您能夠定義內(nèi)容的加載方式。此組件原生支持 Room、LiveData 和 RxJava。
切片
最后,切片組件讓一組新功能在 Android Jetpack 中首次亮相?!扒衅笔且环N以搜索結(jié)果形式在 Google 智能助理內(nèi)部顯示應(yīng)用界面的方式:
可以訪問 Android 開發(fā)者網(wǎng)站, 詳細(xì)了解切片組件 ,以及如何將其集成到您的應(yīng)用中。
Android KTX
最后,Android Jetpack 利用 Kotlin 語言功能的一個目標(biāo)是提高您的效率。Android KTX可以讓您將類似下面所示的 Kotlin 代碼:
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});
轉(zhuǎn)換成如下所示的更精簡的 Kotlin 代碼:
view.doOnPreDraw { actionToBeTriggered() }
這只是將 Kotlin 支持帶到 Android Jetpack 組件的第一步;我們的目標(biāo)是讓 Android Jetpack 造福 Kotlin 開發(fā)者(當(dāng)然還有 Java 開發(fā)者)。您可以在 Android 開發(fā)者網(wǎng)站上 詳細(xì)了解 Android KTX。
開始使用
您可以訪問 developer.android.com/jetpack 頁面,開始使用 Android Jetpack。您可以在這個頁面上找到 Android Jetpack 的文檔與視頻,查看 Android Jetpack 組件的新功能,加入社區(qū)并向我們提供反饋。我們還創(chuàng)建了一個 專門介紹 Android Jetpack 的 YouTube 播放列表 ,您可以觀看這些視頻,了解 Android Jetpack、組件、工具和最佳實(shí)踐的相關(guān)信息。
Android Jetpack 使用入門 將介紹如何在您現(xiàn)有的應(yīng)用中集成 Android Jetpack 組件并幫助您開始構(gòu)建全新的 Android Jetpack 應(yīng)用。Android Studio 3.2 為 Android Jetpack 提供了出色的工具支持。要構(gòu)建新應(yīng)用,請使用 Activity & Fragment+ViewData Activity,您可以在 Android Studio 的 File | New | New Project 下找到此 Activity:
未完待續(xù)