databinding 在编译阶段会将 xml文件拆分成两段:
activity_main.xml

会将每个控件添加一个tag。
activity_main-layout.xml

ActivityMainBindingImpl.java

DataBinding内存开销大的原因
1.创建了数组去存储控件对象。

2.双向绑定创建了Runnable去监听控件的变化

3.只要Model的数据改变,就会去刷新View,handler会消耗大量内存

DataBinding的原理全部在ViewDataBinding.java中
网友评论