【Jetpack】ViewBinding 与 DataBinding的区别

一、DataBinding

DataBinding 是 2016 年的 Android Studio 2.0 版本 开始使用的 , 其作用是实现 数据模型 Model 与 视图 View 的绑定 , 该绑定是双向的绑定 ;

  • 数据模型 Model 就是 数据类的实例对象 ;

  • 视图 View 指的是 Xml 布局文件 ;

DataBinding 就是将 数据模型实例对象 配置到 Xml 布局文件 中 ;

DataBinding 可以代替的代码逻辑 :

  • findViewById

  • setOnClickListener

  • setText

  • setVisibility

  • setEnable

  • setXxx

很明显 , DataBinding 可以 在 Activity / Fragment / Dialog 中获取组件 , 在 Xml 布局文件中 设置点击事件 , 设置文本 , 设置可见性 等等 ;

二、ViewBinding

ViewBinding 是 2019 年 Android Studio 3.6 版本 开始使用的 , 其作用是 为 Xml 布局文件 生成绑定类 , 借助该 绑定类 , 可以 快速获取 Xml 中的组件 ;

ViewBinding 可以代替的代码逻辑 :

  • findViewById

  • 定义 View 组件的成员字段

ViewBinding 与 ButterKnife 功能基本一致 , 编译性能优于 ButterKnife , 因为 ButterKnife 中使用了大量的注解 , 其编译速度要低于 ViewBinding ;

ViewBinding 与 DataBinding 比较 , ViewBinding 是一个量级较轻的函数库 ;

  • 集成 DataBinding 要比 ViewBinding 编译速度慢很多 ;

  • 集成 DataBinding 编译后的 Apk 要比 ViewBinding 大几十 KB ;

如果只是想要省略 findViewById 代码 , 使用 ViewBinding 即可 ;

猜你喜欢

转载自blog.csdn.net/m0_70749039/article/details/130662589