序言
Jetpack 是一個由多個庫組成的套件,可幫助開發者遵循最佳做法、減少樣闆代碼并編寫可在各種 Android 版本和裝置中一緻運作的代碼,讓開發者可将精力集中于真正重要的編碼工作
根據官方的定義其實能夠提煉出兩個核心點
1、它是一套元件庫(說明它是由許多個不一樣的元件庫構成,并非一個單一的元件庫)
2、使用 Jetpack 能夠幫助咱們在不一樣的 Android 版本和不一樣的裝置上,實作行為一緻的工作代碼;(說明 Jetpack 能夠輕松的處理由 Android 版本不一緻和裝置不一樣産生的差别性和相容性問題)
接下來我們看下 Jetpack 的構成
我們可以從上述的這張 Android Jetpack 的架構圖上看到, Android Jetpack 的構成是十分龐大的,主要是由 Architecture(架構元件) 、Foundationy(基礎元件)、Behavior(行為元件、UI(界面元件)四大部分組成
不難發現,這 Android Jetpack 系列庫裡面是有不少我們曾經學習過的東西,例如:Fragment、WebView、Room 都歸屬于 Jetpack 中來了,由此可見,Jetpack 并不全是些新的事物,隻要是能夠幫助開發者更好更友善的建構應用程式的元件,基本上都被加入到了 Jetpack 中來
Jetpack 的優勢?
- 遵循最佳做法:Android Jetpack 元件采用最新的設計方法建構,具有向後相容性,可以減少崩潰和記憶體洩露
- 消除樣闆代碼:Android Jetpack 可以管理各種繁瑣的 Activity(如背景任務、導航),以便您可以專注于打造出色的應用
- 減少不一緻:這些庫可在各種 Android 版本和裝置中以一緻的方式運作,助您降低複雜性
- 擁有基于生命周期感覺的能力:Android Jetpack 可以減少 NPE(空指針異常) 崩潰、記憶體洩漏,為開發出健壯且流暢的程式提供強力保障
- 可以消除大量重複樣闆式的代碼:可以加速 Android 的開發程序,元件可搭配工作,也可單獨使用,能夠顯著提高工作效率
如何正确的去學習 Jetpack ?
關于 Jetpack 的文檔資料 在網上其實有很多,但大多 雜而不精,并不能給提供一個好的學習方向;是以為了讓大家對 Android Jetpack 有充分的了解, 我通過這些年的工作經曆和對網上的資料查詢和整理,最終将其整合了成了一個 PDF 文檔; 需要 完整版 PDF 文檔 的朋友:可以 私信 發送 “進階” 即可 免費擷取;希望大家通過閱讀這份文檔,能夠查漏補缺;早日 精通 Jetpack
資料展示如下:
Jetpack 全家桶目錄
Jetpack 全家桶系列之Lifecycle
- 萬物基于 Lifecycle
- 手動管理生命周期的痛苦你不懂
- 按照慣例的思考
- 觀察者模式
- 引入 Lifecycle 後
- 源碼結構
- 簡單的源碼分析
- activity 生命周期處理
- fragment 生命周期處理
- Lifecycle State 大小比較
Jetpack 全家桶系列之 ViewModel
- ViewModel 的職責
- 作為資料持有者
- Fragment 間共享資料
- 代替 Loader
- ViewModel 源碼分析
- 如何做到 activity 重建後 ViewModel 仍然存在?
- 如何做到 fragment 重建後 ViewModel 仍然存在?
- 如何控制作用域?
- 如何避免記憶體洩漏?
- ViewModel 和 onSaveInstanceState
完整版 PDF 文檔擷取方式:私信發送 “進階”即可 免費擷取
Jetpack 全家桶系列之 ViewModel
- 資料驅動魔法師
- DataBinding 基礎
- DataBinding 引入
- 使用DataBinding 解決的問題及實作原理
- Binding Adapter
- DadaBinding + LiveData
- 各種 findViewById 替代方案對比
Jetpack 全家桶系列之 Navigation
- Navigation 簡介
- Navigation 能做什麼
- Navigation 工作邏輯
- Navigation Graph
- Navigation 的使用技巧
- 同一 graph 中共享 ViewModel
- 嵌套 navigation graph
- Navigation 設計探讨
- fragment replace 你真的了解嗎
- 被重建的 fragment
Jetpack 全家桶系列之 LiveData
- 我們都是 Adapter
- 理想的資料模型
- observable
- lifecycle-aware
- data holder
- Transformations
- LiveData 的錯誤用法
- 錯誤地使用 var LiveData
- LiveData 粘性事件
- 源碼結構
- LiveData
- MutableLiveData
- Observer
- 源碼分析
需要 完整版 PDF 文檔 的朋友:現在 私信 發送 “進階” 即可 免費擷取
作為 Android 開發者,無論我們是否使用 Jetpack,就 Jetpack 本身而言,其精妙的設計以及設計思想都是非常值得我們學習的
以上是我的一點見解,目前我也在學習 Jetpack,相信未來 Jetpack 會越來越好