谷歌在 2018 I/O 大會上釋出了一系列輔助 Android 開發者的實用工具,這套工具就是 Jetpack,它是一套庫、工具和指南的合集,可以幫助開發者更輕松地編寫和建構出色的 Android 應用程式 Jetpack 中的有些元件并不是第一次推出,其中 LifeCycle、LiveData、ViewModel、Room 等元件早在 Google I/O 2017年大會上就随着 Android Architecture Component(AAC)一起推出了,但是推廣效果一般;時隔一年後谷歌在 AAC 的基礎之上釋出了 Jetpack ,并釋出了其他工具以解決 Android 技術選型亂以及開發不規範等問題
當然随着而來的就是 Jetpack 的風評問題,網絡上對 Jetpack 唱衰的也有、唱好的也有;那我們該如何判斷 Jetpack 的好壞呢?究竟有沒有可取之處呢?
Jetpack 的好壞?
首先我們要明确一件事情,判斷一件事物的好壞,自然要通過了解他,才能給予一定的判斷
我們先來了解 GOOgle 官方對 Jetpack 的解釋
- Jetpack 是一套庫、工具和指南,可幫助開發者更輕松地編寫優質應用;這些元件可幫助您遵循最佳做法、讓您擺脫編寫樣闆代碼的工作并簡化複雜任務,以便您将精力集中放在所需的代碼上
- Jetpack 包含與平台 API 解除捆綁的 androidx 軟體包庫;這意味着,它可以提供向後相容性,且比 Android 平台的更新頻率更高,以此確定您始終可以擷取最新且最好的 Jetpack 元件版本
從上面這裡就可以看出 Jetpack 是具有極多的優勢的;首先 Jetpack 是由 GOOgle 推出并進行維護的一個架構,并且具有最佳實踐、向後相容、減少代碼 Bug 幾率、更新速率較于其他 Android 開發架構要更快更好等等諸如此類的優點
但 Android 發展至今已有十多年了,仍有許多的程式員對大多架構其實是不太熟悉的,特别對于初級開發者,甚至是中級開發者來說,皆是處于聽過但沒碰過的一個狀态;是這些架構太難學習了嗎?還是說這些架構用不上,或者不好用?其實都不是,不信你看現在大廠的進階開發工程師的任職條件就可以看出;例如:
小米:
是以 Jetpack 既然已經作為一個新技術出現,那麼他就有一定的道理;在開發世界,永遠是技術至上,一門新技術的盛行總是有原因的,要麼比老架構性能提升不少,要不更加易用等等;我們作為開發者,更是要不斷學習、嘗試各種新出來的技術
如若遇到新技術也不主動去學習,還一邊感慨着程式員薪資提升慢,35歲無路可去,一邊上班摸魚嘻嘻哈哈;對不起,程式員漲薪不是熬年齡,無處可去更不是因為年齡, 而是不思上進
Jetpack 思維導圖
上述是一份大佬面向學習 Jetpack 所制作的一份思維導圖, 希望可以給大家提供一個好的學習方向;現如今關于 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
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
- 源碼分析
需要 完整版 Jetpack 進階開發思維導圖及學習手冊文檔 的朋友:可在評論區下方留言,或者私信發送"Jetpack 全家桶" 即可 免費擷取
作為 Android 開發者,無論我們是否使用 Jetpack,就 Jetpack 本身而言,其精妙的設計以及設計思想都是非常值得我們學習的
以上是我的一點見解,目前我也在學習 Jetpack,相信未來 Jetpack 會越來越好
加油!!!各位 Android 開發者們