引言
2018年,Google 官方推出一個全新的開發元件工具庫 Jetpack ,并将2017年所推出的一個架構元件庫 Architecture Components 作為 Jetpack 的一部分納入其中;當然,Jetpack 并沒有就此定闆,此後的幾年裡又有許多新的元件被加入到 Jetpack 中,未來 Jetpack 一定還會不斷繼續擴充
我們看下Google 官方的定義
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 的優點有哪些 ?
就像上述說的一樣;Jetpack 是一個開發元件工具集,它的主要目的肯定是讓開發者能夠編寫出更加簡潔的代碼,并簡化我們的開發過程,這也就意味着 Jetpack 必将具有以下幾個優點
遵循最佳做法
- Android Jetpack 庫采用最新的設計方法建構,具有向後相容性,可以減少崩潰和記憶體洩漏
無需捆綁
- Android Jetpack 系列元件可以無需捆綁使用,你如果隻想用裡面的單個庫,那麼就可以僅僅依賴一個庫
消除樣闆代碼
- Android Jetpack 可以管理各種繁瑣的活動(如背景任務、導航和生命周期管理),以便您可以專注于打造出色的應用
減少不一緻
- 這些庫可在各種 Android 版本和裝置中以一緻的方式運轉,助你降低複雜性
Android Jetpack 要學嗎?
在我看來谷歌提出這一系列的元件是想引領 Android 開發者逐漸統一開發規範,把現在好的一系列第三方吸納進來;在原來感覺 Android 開發一直是放任自流的狀态,到現在每次的 Android 版本更新都能體會的出來;谷歌在一步步的引領着開發者們往統一的方向标準發展
作為 Android 開發者,無論我們是否使用 Jetpack,就 Jetpack 本身而言,其精妙的設計以及設計思想都是非常值得我們學習的
如何學習 Jetpack ?
上述是 騰訊 T10 級 大佬面向學習 Jetpack 所制作的一張思維導圖, 希望可以給大家提供一個好的學習方向;并且通過這份思維導圖融合了這些年的工作經曆及對網上的資料查詢和整理,最終将其整合成了一份 Jetpack 全家桶進階開發學習筆記; 有需要這份 Jetpack 全家桶進階開發學習筆記 的朋友:現在 私信 發送 “筆記” 即可 免費擷取;希望大家通過閱讀這份筆記,能夠查漏補缺;早日精通 Jetpack
資料内容展示如下:
Jetpack 全家桶目錄
Jetpack 全家桶系列之 Lifecycle
- 萬物基于 Lifecycle
- 手動管理生命周期的痛苦你不懂
- 按照慣例的思考
- 觀察者模式
- 引入 Lifecycle 後
- 源碼結構
- 簡單的源碼分析
- activity 生命周期處理
- fragment 生命周期處理
- Lifecycle State 大小比較
完整版 Jetpack 全家桶進階開發學習筆記 擷取方式:私信發送 “筆記”即可 免費擷取
Jetpack 全家桶系列之 ViewModel
- ViewModel 的職責
- 作為資料持有者
- Fragment 間共享資料
- 代替 Loader
- ViewModel 源碼分析
- 如何做到 activity 重建後 ViewModel 仍然存在?
- 如何做到 fragment 重建後 ViewModel 仍然存在?
- 如何控制作用域?
- 如何避免記憶體洩漏?
- ViewModel 和 onSaveInstanceState
Jetpack 全家桶系列之 ViewModel
- 資料驅動魔法師
- DataBinding 基礎
- DataBinding 引入
- 使用DataBinding 解決的問題及實作原理
- Binding Adapter
- DadaBinding + LiveData
- 各種 findViewById 替代方案對比
完整版 Jetpack 全家桶進階開發學習筆記 擷取方式:私信發送 “筆記”即可 免費擷取
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,相信未來 Jetpack 會越來越好
加油!!!各位 Android 開發者們