DataBinding
2020-07-27 本文已影响0人
Gambol_r
databinding 在编译阶段会将 xml文件拆分成两段:
activity_main.xml
activity_main.xml
会将每个控件添加一个tag。
activity_main-layout.xml
activity_main-layout
ActivityMainBindingImpl.java
ActivityMainBindingImpl.java
DataBinding内存开销大的原因
1.创建了数组去存储控件对象。
image.png
2.双向绑定创建了Runnable去监听控件的变化
image.png
3.只要Model的数据改变,就会去刷新View,handler会消耗大量内存
image.png
DataBinding的原理全部在ViewDataBinding.java中