1、不用页面架构
 优点:简单
 缺点:可读性、可维护性、可扩展性很弱
应用场景:欢迎、关于、帮助、隐私条款、用户协议等待
2、mvc
 M:model 模型,包括数据请求及操作
 V:xml
 C:Controller activity 数据请求后页面逻辑操作
 优点:将模型进行解耦
 缺点:1、作为controller的activity里面包含了view的代码,角色不清晰,静态
 2、 动态角度,作为包含view的代码的activity的权利很大,伴随时间的推移,activity代码越来越大
应用场景(使用优点,简单的数据展示页面):设置页面、历史订单
3、mvp
 M:模型
 V:activity/fragment+xml+View的interface
 P:Presenter
 优点:角色清晰
 缺点:1、新增viewInterface,导致增加一个view的功能需要修改三个地方
应用场景:复杂多变的页面
4、MVVM 技术依赖 双向的数据绑定的技术-》 dataBinding
 M:模型
 V:activity/fragment+xml
 VM:viewModel
 优点:1、角色清晰,没有interface 2、不需要findviewbyId
 缺点:阅读性差 xml里包含代码
应用场景:复杂多变的页面
5、Compose 数据驱动 去掉了xml compose在android上只能用kotlin编写
 M:模型
 V:activity/fragment + composable
 VM:ViewModel
 优点:布局系统的 Jetpack Compose 实现有两个主要目标:一是实现高性能,二是让开发者能够轻松编写自定义布局。在 Compose 中,通过避免多次测量布局子级可实现高性能。如果需要进行多次测量,Compose 具有一个特殊系统,即固有特性测量
 缺点:学习成本
 应用场景:
详见
 https://zhuanlan.zhihu.com/p/540295707