JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧

优点

  1. JetPack采用最新的设计方法构建,具有向后兼容性,可以减少应用的崩溃和内存泄露;
  2. 可以管理各种繁琐的Activity(比如后台任务、导航和生命周期管理),以便您可以专注于打造出色的应用;
  3. JetPack的各种库可在各种Android版本和设备中以一致的方式运作,帮助你降低项目的复杂性。在很大程度上提升了开发效率。

官网介绍

JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧_第1张图片
JetPack就是AndroidX,官网给的分类有四种。分别是Architecture(架构)、Foundation(基础)、Behavior(行为)、UI(界面)
我们着重介绍下架构,本文就熟悉常用的几种架构

元素 介绍
LifeCycle 组件内部感知自己的生命周期
Navigation 管理Fragment
ViewModel 视图与数据之间的桥梁
LiveData 实时更新数据
Room 数据库
WorkManager 智能后台任务
DataBinding xml中数据绑定
Paging 分页加载

https://developer.android.com/jetpack
https://developer.android.google.cn/jetpack(中文网)

简单入坑

传统的MVC架构

传统的MVC,一般是一个View对应一个Activity,这样一来model数据逻辑和Controller控制器代码都在Activity里。导致Activity代码过多,缺点就很明显不利于维护而且耦合度大。
JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧_第2张图片

ViewModel

ViewModel是单独管理数据,将View里的数据独立出来,使控制器更加简单。负责管理数据,防止数据丢失(比如切换系统语言,旋转屏幕)。还可以和LiveData配合,监听数据来改变UI 的数据。这时候ViewModel只是将数据独立出来,刷新UI还是在控制器的references里进行,下面LiveData的出现就是解决这一问题的
JetPack(二)ViewModel小试牛刀
JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧_第3张图片

LiveData

观察者模式自动刷新数据,ViewModel采用LiveData来管理数据。ViewModel结合LiveData一起就可以直接观察数据的变化,如果数据变化就刷新UI。这样就架空了控制器和UI之间的联系,将数据刷新的功能直接赋能给ViewModel。
JetPack(三)LiveData利刃出鞘
JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧_第4张图片

DataBinding

当然在数据绑定中,我们发现有控制器里有很多重复的findViewById(当然用黄油刀可以改善)。这里JetPack也帮我们解决了这个问题,DataBinding的诞生就是实现UI界面直接绑定数据,然后在ViewModel中实现数据的逻辑,控制器进行控制
JetPack(四)DataBinding大法好
JetPack(一) JetPack入坑指南——不会吧不会吧,不会还有人不会用JetPack吧_第5张图片

Navigation

Navigation的作用想当如路由route,我们可以在主Activity的UI布局中添加fragment的子UI布局,然后子fragment之间的跳转和数据传递都可以利用Navigation完成。Navigation的使用是创建一个navigation布局的xml实现可拖动效果,然后设置对应的action等等属性。

个人心得

因为我自己是从传统架构MVC一直走到MVVM的,再到现在的JetPack,所以没少走弯路。JetPack肯定能规范开发,并且避免一些不必要的问题,比如生命周期的控制、减少应用崩溃和内存泄露。但是万事都有利弊,JetPack把代码脱的一件都不剩,这样不利于阅读代码和理清业务逻辑。所以对于Android初学者和小白,不建议一上来就JetPack,万丈高楼平地起。我们知道了传统架构存在的问题,有了一定的经验积累自然就能很快的接收和理解JetPack的设计思想。

你可能感兴趣的:(Android,架构,android,JetPack)