一、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 即可 ;