什么是Data Binding
Data Binding。顾名思义,数据绑定。是Google对MVVM在Android上的一种实现。能够直接绑定数据到xml中。并实现自己主动刷新。
如今最新的版本号还支持双向绑定。虽然使用场景不是那么多。
Data Binding能够提升开发效率(节省非常多以往须要手写的java代码)。性能高(甚至超越手写代码)。功能强(强大的表达式支持)。
用途
去掉Activities & Fragments内的大部分UI代码(setOnClickListener, setText, findViewById, etc.)
XML变成UI的唯一真实来源
降低定义view id的主要用途(数据绑定直接发生在xml)
优势
UI代码放到了xml中,布局和数据更紧密
性能超过手写代码
保证运行在主线程
劣势
IDE支持还不那么完好(提示、表达式)
报错信息不那么直接
重构支持不好(xml中进行重构。java代码不会自己主动改动)
开源方案
ButterKnife, Jake大神的知名库了。能够少些非常多findViewById,setOnClickListener。取而代之地用annotation去生成代码。
Android Annotations,相同通过annotation。大量的annotation。侵入性较强,须要遵循其规范写一些代码。像是@AfterViews凝视中才干对View进行操作。
RoboBinding,和Data Binding最相似的一个方案,相同非常多事情放在xml去做了,使用了aspectJ去做生成。
除了这些比較有名的,还有非常多各不相同的方案,但自从data binding公布后。能够说它们都再也没实用武之地了。由于不管从性能、功能,还是ide的支持上,data binding都更好。
网友评论