美文网首页
Android-JetPack初次尝试

Android-JetPack初次尝试

作者: 陆笪_刑道荣 | 来源:发表于2021-05-11 09:13 被阅读0次
  • 简介

Jetpack 是一个丰富的组件库,它的组件库按类别分为 4 类,分别是架构(Architecture)、界面(UI)、行为(behavior)和基础(foundation)。每个组件都可以单独使用,也可以配合在一起使用。每个组件都给用户提供了一个标准,能够帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者能够集中精力编写重要的业务代码。

  • 优点

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

  • 使用

下面着重介绍一下几种架构:
1.LifeCycle:组件内部感知自己的生命周期
2.Navigation:管理Fragment
3.ViewModel:视图与数据之间的桥梁
4.LiveData:实时更新数据
5.Room:数据库
6.WorkManager:智能后台任务
7.DataBinding:xml中数据绑定
8.Paging:分页加载

  • 简单入坑

传统的MVC架构

传统的MVC,一般是一个View对应一个Activity,这样一来model数据逻辑和Controller控制器代码都在Activity里。导致Activity代码过多,缺点就很明显不利于维护而且耦合度大。


ViewModel

ViewModel是单独管理数据,将View里的数据独立出来,使控制器更加简单。负责管理数据,防止数据丢失(比如切换系统语言,旋转屏幕)。还可以和LiveData配合,监听数据来改变UI 的数据。这时候ViewModel只是将数据独立出来,刷新UI还是在控制器的references里进行,下面LiveData的出现就是解决这一问题的。


https://www.jianshu.com/p/50ab45e957d3

LiveData

观察者模式自动刷新数据,ViewModel采用LiveData来管理数据。ViewModel结合LiveData一起就可以直接观察数据的变化,如果数据变化就刷新UI。这样就架空了控制器和UI之间的联系,将数据刷新的功能直接赋能给ViewModel。


https://www.jianshu.com/p/1171948c1b3b

DataBinding

当然在数据绑定中,我们发现有控制器里有很多重复的findViewById。这里JetPack也帮我们解决了这个问题,DataBinding的诞生就是实现UI界面直接绑定数据,然后在ViewModel中实现数据的逻辑,控制器进行控制。


https://www.jianshu.com/p/b1b0f3037202

Navigation

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

  • 个人小结

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

相关文章

  • Android-JetPack初次尝试

    简介 Jetpack 是一个丰富的组件库,它的组件库按类别分为 4 类,分别是架构(Architecture)、界...

  • 初次尝试

    受到研究员的启发,朋友圈的引导,第一次尝试写简书,希望能坚持下去,别再长草了!

  • 初次尝试

    器材:魅蓝3S 后期:Snapseed、MIX、Retouch、VSCO 艺考生一枚,还请前辈们指点!

  • 初次尝试

    the words of hand

  • 初次尝试

    下午,像日常一样—刷着朋友圈、打着宅系游戏。但下一秒我始终没有想到,我会穿越,虽然我憧憬过、期待过,但这么草率地穿...

  • 初次尝试

    手痒尝试画一下,感觉还挺累。继续…

  • 初次尝试

    有点纠结 一直以来,都想写点东西的,真的,可不知从何说起,身边的东西太多,繁复又零碎,分不清个主次,整不出个顺序,...

  • 初次尝试

    何为所见即所得

  • 初次尝试

    新的记载用具,用一下哈。

  • 初次尝试

    我印象中麻麻给我买的第一套水彩笔是我六岁那年,懵懂的我莫名其妙的就喜欢上了画画,也许不是喜欢,只是想尝试用那...

网友评论

      本文标题:Android-JetPack初次尝试

      本文链接:https://www.haomeiwen.com/subject/zszydltx.html