0、相關文章:
文章1:Android從零開始搭建MVVM架構(1)————DataBinding
文章3:databinding(系列文章5篇)
1、DataBinding的優劣勢
1.1、優勢
DataBinding 出現以前,我們在實現 UI 界面時,不可避免的編寫大量的毫無營養的代碼:比如 View.findViewById();比如各種更新 View 屬性的 setter:setText(),setVisibility(),setEnabled() 或者 setOnClickListener() 等等。
這些“垃圾代碼”數量越多,越容易滋生 bug。使用 DataBinding,我們可以避免書寫這些“垃圾代碼”。
1.2、劣勢
- 數據綁定增加Bug調試難度。由於數據和視圖的雙向綁定,導致出現問題時不太好定位來源,有可能數據問題導致,也有可能業務邏輯中對視圖屬性的修改導致。
- 複雜的頁面,model也會很大,雖然使用方便了也很容易保證了數據的一致性,當時長期持有,不利於釋放內存。
- 數據雙向綁定不利於View重用。
- 會增加編譯出的 apk 文件的類數量和方法數量。
新建一個空的工程,統計打開 build.gradle 中 Data Binding 開關前後的 apk 文件中類數量和方法數量,類增加了 120+,方法數增加了 9k+(開啓混淆後該數量減少爲 3k+)。
如果工程對方法數量很敏感的話,請慎重使用 Data Binding。
基於DataBinding的缺點,實現MVVM可以採用ViewModel + LiveData 替代實現。
2、使用
可參考文章1.