引言
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 开发者们