jetpack常用架构组件的作用

最近准备新写一个安卓应用,想尝试使用jetpack里的架构组件。这里面的组件都可以单独使用,每个都有自己的作用,因此按照自己目前的理解,做个记录,避免遗忘。 持续更新

viewmodel作用:
1.activity在翻转,语言改变等时会重新创建,导致数据丢失,而数据存储在viewmodel里会自动保存。
2.使用MVVM架构后,数据及对数据的操作,提取到VM中,减少activity代码的复杂度

databinding作用:
1.使用后,每个activity都会自动生成ActivityXxxBinding类,里面自带控件的引用,不再需要使用findviewbyId。既减少代码,也防止因界面修改,导致findviewbyId为空或未初始化的错误,因为在binding后,编译时能自动发现引用错误。
2.可以跟VM中的数据或方法直接绑定,减少java代码绑定。

livedata
1.观察者模式,数据变化后,自动更新UI。减少界面与Controller的耦合,界面View只与VM关联。

room
1.对象关系型数据持久化ORM,写对象存储,可以校验对象和SQL的错误

Navigation
1.把所有界面写在一个activity里,通过fragment管理。需要多维护一个graph xml
2.图形化看到各界面的跳转关系,此外支持安全传参,动画

paging
还未使用

workmanager
还未使用

UI constrainlayout
relativelayout的升级版,看到支持设置guideline,barrier辅助定位,也支持组合控件,各种对齐等方式。更利于IDE编写控件
 

猜你喜欢

转载自blog.csdn.net/sd2131512/article/details/117571883