Data Binding是Google I/O大会上官方推介的,官方原生支持 MVVM 模型可以让我们更快速更好的构建代码框架。
Data Binding 性能
在Data Binding前已经有像RoboGuice、ButterKnife 这样的依赖注入框架,那么为什么要使用Data Binding?
1、Data Binding可以使代码更加干净优雅,使你的工作更加简单
首先再也不用findViewById,一些依赖注入框架像ButterKnife可以很漂亮的帮你绑定资源像这样@Bind(R.id.title) TextView title;,但是控件一多还是有非常多的绑定,
而Data Binding可以更进一步的帮你减少不必要的代码像这样mBinding.setUser(user);
2、Data Binding性能
若是findViewById,实际上是对所有子view都遍历了一遍,而每次findViewById都去遍历一遍。而Data Binding可以做到编译时就知道对应的view,只需遍历布局层次一次,就可以收集到所有的 View。
若是依赖注入的框架,我们知道数据绑定这类库是缓慢的,而Data Binding在性能方面是零反射,即一切都发生在编译期。
Data Binding 使用
确保 Android 的 Gradle 插件版本不低于 1.5.0
修改对应模块(Module)的 build.gradle:
Data Binding 创建
默认会根据xml文件名生成Data Binding类(会转换为首字母大写并添加Binding后缀)
若为Activity
若为fragment
若为Custom View
若为Recyclerview/ListView
其他用法参见官方文档
Data Binding 构建MVVM应用程序
MVVM(Model-View-ViewModel)
Model
|
|
View
|
|
ViewModel
|
|
Data Binding 高级使用
后续进行说明…