Android架构体系–结构和组件选择

Android架构的必要性

随着业务的发展,Android以前那种瀑布流式的开发模式的弊端越来越明显,例如
1.无法拆分逻辑和页面
都写在Activity中,无法拆分,非常混乱
2.无法测试等
由于界面和逻辑连在一起,无法写出良好的单元测试
3.过长的Activity代码
由于各种逻辑都在一起,经常会有三四百行的超长文件

Android官方解决方法 

这时候我们就需要对项目进行良好的架构来解决这些问题,Android官方提出MVVM架构模式并推出了诸多工具来实现,与最初不同的是,android官方推出了多个新的工具库来解决实现过程中的问题。

什么是MVVM

将整个项目分为三个层次
View:界面层,例如Activity,fragment等界面展示
ViewModel:逻辑层,不与界面关联,也不持有Activity实例,但是可以通过DataBinding等方法来与界面交互
Model:传统的Model层,包括了对Entity的处理,可以通过Databinding来和界面交互,但是改变逻辑交由ViewModel完成
三个层次的关系图如下:

工具选择

要实现MVVM模式,我们不仅需要遵循结构划分,还需要一些工具的帮助,google已经为我们提供了这些工具,下面先罗列一下。
1.ViewModel:不同于上面的结构层次,这是一个工具类,它可以帮助我们管理viewmodel,在宿主销毁后自动消除,这样就可以避免一些内存泄露的问题
2.lifecycleaware:通过注解可以在activity相应生命周期的时候调用函数,进一步把逻辑和页面分离
3.livedata:一种可以在改变时通知所有已经注册的观测者的数据,通过观察者模式实现
4.ObservableField:同上,但是一般用在entity里,简化代码
下面是build.gradle的dependencies部分

下一篇文章会给出一个实际的代码例子来一步步实现mvvm模式,Android架构体系–样例解析

u3coding
A software developer

1 Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

*