【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 即可 ;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容