天天看点

由多个库组成的 Android Jetpack,到底有多厉害?

序言

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作

根据官方的定义其实能够提炼出两个核心点

1、它是一套组件库(说明它是由许多个不一样的组件库构成,并非一个单一的组件库)

2、使用 Jetpack 能够帮助咱们在不一样的 Android 版本和不一样的设备上,实现行为一致的工作代码;(说明 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 全家桶目录

由多个库组成的 Android Jetpack,到底有多厉害?

Jetpack 全家桶系列之Lifecycle

  • 万物基于 Lifecycle
  • 手动管理生命周期的痛苦你不懂
  • 按照惯例的思考
  • 观察者模式
  • 引入 Lifecycle 后
  • 源码结构
  • 简单的源码分析
  • activity 生命周期处理
  • fragment 生命周期处理
  • Lifecycle State 大小比较
由多个库组成的 Android Jetpack,到底有多厉害?

Jetpack 全家桶系列之 ViewModel

  • ViewModel 的职责
  • 作为数据持有者
  • Fragment 间共享数据
  • 代替 Loader
  • ViewModel 源码分析
  • 如何做到 activity 重建后 ViewModel 仍然存在?
  • 如何做到 fragment 重建后 ViewModel 仍然存在?
  • 如何控制作用域?
  • 如何避免内存泄漏?
  • ViewModel 和 onSaveInstanceState
由多个库组成的 Android Jetpack,到底有多厉害?

完整版 PDF 文档获取方式:私信发送 “进阶”即可 免费获取

Jetpack 全家桶系列之 ViewModel

  • 数据驱动魔法师
  • DataBinding 基础
  • DataBinding 引入
  • 使用DataBinding 解决的问题及实现原理
  • Binding Adapter
  • DadaBinding + LiveData
  • 各种 findViewById 替代方案对比
由多个库组成的 Android Jetpack,到底有多厉害?

Jetpack 全家桶系列之 Navigation

  • Navigation 简介
  • Navigation 能做什么
  • Navigation 工作逻辑
  • Navigation Graph
  • Navigation 的使用技巧
  • 同一 graph 中共享 ViewModel
  • 嵌套 navigation graph
  • Navigation 设计探讨
  • fragment replace 你真的了解吗
  • 被重建的 fragment
由多个库组成的 Android Jetpack,到底有多厉害?

Jetpack 全家桶系列之 LiveData

  • 我们都是 Adapter
  • 理想的数据模型
  • observable
  • lifecycle-aware
  • data holder
  • Transformations
  • LiveData 的错误用法
  • 错误地使用 var LiveData
  • LiveData 粘性事件
  • 源码结构
  • LiveData
  • MutableLiveData
  • Observer
  • 源码分析
由多个库组成的 Android Jetpack,到底有多厉害?

需要 完整版 PDF 文档 的朋友:现在 私信 发送 “进阶” 即可 免费获取

作为 Android 开发者,无论我们是否使用 Jetpack,就 Jetpack 本身而言,其精妙的设计以及设计思想都是非常值得我们学习的

以上是我的一点见解,目前我也在学习 Jetpack,相信未来 Jetpack 会越来越好

继续阅读