半小时了解Jetpack

Posted Winston Wood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了半小时了解Jetpack相关的知识,希望对你有一定的参考价值。

在Google的官方文档中是这样对Jetpack 定义的:

Jetpack 是一套组件库,可帮助开发人员遵循最佳实践,减少样板代码并编写可在 android 版本和设备上
一致工作的代码,以便开发人员可以专注于他们关心的代码。

根据定义其实可以提炼出两个核心点:

  1. 它是一套组件库。(说明它是由许多个不同的组件库构成,并不是一个单一的组件库)
  2. 使用 Jetpack 可以帮助我们在不同的 Android 版本和不同的设备上,实现行为一致的工作代码。(说明 Jetpack 可以轻松的处理由 Android 版本不一致和设备不同产生的差异性和兼容性问题)

以下简要介绍下Jetpack各个组件

LifeCycle 有了LifeCycle组件,当系统组件Activity、Fragment、Service和Application的生命周期发生变化时,我们的自定义组件能够及时得到通知。LifeCycle使我们的自定义组件和系统组件进一步解耦

Navigation 处理导航图所需的一切,包括页面的跳转、参数的传递、动画效果的设置,以及App bar的设置等。导航图让我们可以站在“上帝的视角”,俯瞰应用程序所有界面之间的关系。

ViewModel 负责处理View和Model之间的业务逻辑。它直接对UI所需的数据负责,让视图和数据进行分离。而且ViewModel与生命周期相关,它能自动处理由于屏幕旋转导致界面重新创建所带来的数据重新获取问题。

LiveData LiveData在MVVM架构的层与层之间扮演这个着重要的作用。当数据发生变化时,通过LiveData可以让数据的订阅者得到通知。

Room Google官方的ORM数据库,原生支持LiveData。再到啊呸Livedata使用时,当Room数据库的数据发生变化时,LiveData使数据的订阅者能够及时得到通知,而无需从数据库重新获取数据。

WorkManager 为应用程序中那些不需要及时完成的任务提供统一的解决方案。

DataBinding 进一步解耦UI界面。DataBinding的出现让findViewById不复存在,使布局文件能够承担更多的工作,甚至能承担一些简单的业务逻辑,这减轻了Activity、Fragment的工作量。

Paging为常见的三种分页机制提供了统一的解决方案,使工程师能够将很多的精力专注在业务代码上。

参考文档
1 https://zhuanlan.zhihu.com/p/334350927
2 Android Jetpack应用指南 叶坤 著

以上是关于半小时了解Jetpack的主要内容,如果未能解决你的问题,请参考以下文章

半小时了解Jetpack

第十五周个人作业

半小时了解SQL注入漏洞?(注入方式大全+绕过大全)

Jetpack 组成没有片段的导航架构?

带有片段和 Jetpack 导航的 Viewpager2:恢复片段而不是重新创建它们

Android Jetpack导航,另一个主机片段内的主机片段