【Jetpack】ViewBinding 與 DataBinding的區(qū)別

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容