美文网首页
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初次尝试

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