一、DataBinding
DataBinding 是 2016 年的 Android Studio 2.0 版本 開始使用的 , 其作用是實現(xiàn) 數(shù)據(jù)模型 Model 與 視圖 View 的綁定 , 該綁定是雙向的綁定 ;
- 數(shù)據(jù)模型 Model 就是 數(shù)據(jù)類的實例對象 ;
- 視圖 View 指的是 Xml 布局文件 ;
DataBinding 就是將 數(shù)據(jù)模型實例對象 配置到 Xml 布局文件 中 ;
DataBinding 可以代替的代碼邏輯 :
- findViewById
- setOnClickListener
- setText
- setVisibility
- setEnable
- setXxx
很明顯 , DataBinding 可以 在 Activity / Fragment / Dialog 中獲取組件 , 在 Xml 布局文件中 設(shè)置點擊事件 , 設(shè)置文本 , 設(shè)置可見性 等等 ;
二、ViewBinding
ViewBinding 是 2019 年 Android Studio 3.6 版本 開始使用的 , 其作用是 為 Xml 布局文件 生成綁定類 , 借助該 綁定類 , 可以 快速獲取 Xml 中的組件 ;
ViewBinding 可以代替的代碼邏輯 :
- findViewById
- 定義 View 組件的成員字段
ViewBinding 與 ButterKnife 功能基本一致 , 編譯性能優(yōu)于 ButterKnife , 因為 ButterKnife 中使用了大量的注解 , 其編譯速度要低于 ViewBinding ;
ViewBinding 與 DataBinding 比較 , ViewBinding 是一個量級較輕的函數(shù)庫 ;
- 集成 DataBinding 要比 ViewBinding 編譯速度慢很多 ;
- 集成 DataBinding 編譯后的 Apk 要比 ViewBinding 大幾十 KB ;
如果只是想要省略 findViewById 代碼 , 使用 ViewBinding 即可 ;