Android Data Binding简单介绍

在今年的Google IO 2015 中,Google 在 support-v7 中新增了 Data Binding,使用 Data Binding可以直接在布局的 xml 中绑定布局与数据,从而简化代码,Android Data Binding是Android 的 MVVM 框架。因为 Data Binding 是包含在 support-v7 包里面的,所以可以向下兼容到最低 Android 2.1 (API level 7+).

Data Binding即数据绑定,在很多前端框架中都有应用,比如Google维护的AngularJS就支持View和Model的双向绑定。当数据更新,框架收到通知,视图可以自动更新,View和Model可以做到松耦合。

有了Data Binding库的支持,在Android中可以很方便的实现MVVM的开发模式。MVVM,是Windows社区的一种叫法,即Model-View-ViewModel。在Android中,Activity,Fragment,Dialog之类都属于View层;Model层主要负责数据相关部分,可以从数据库或者网络获取;ViewModel主要是把Model转换为View可以呈现的东西,例如把一个Date类型转化为格式化后的String。

ViewModel在哪里呢?在Data Binding插件的支持下,会实时生成以Layout名称命名的Binding类,比如Layout名称为activity_main,则会生成ActivityMainBinding类,数据绑定在Layout文件中XML标注,最终在ActivityMainBinding中转化为Java代码,所以ActivityMainBinding类扮演了ViewModel的角色。

MVVM相对于传统的MVC,把一些业务逻辑抽离,放到ViewModel中,可以减轻Activity和Fragment的压力,同时数据绑定也大大减少了逻辑代码,另一方面对于测试来说,数据变化引起视图自动更新,可以更加方便测试。但在XML中进行数据绑定的操作,可能不利于调试。

在Google官方发布Data Binding库之前,已经有类似的开源项目,如RoboBinding,支持双向绑定等,比较成熟,Google的库目前只支持单向绑定,为Beta版本,不知道后面是不是还有很多特性改进。

目前官方只出了一个简单的教程 -Data Binding Guide

介绍两个Android Data Binding例子地址:

AndroidDataBindingExample

MasteringAndroidDataBinding

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值