Android 使用数据绑定的哪种方法更快

Android 使用数据绑定的哪种方法更快,android,performance,android-databinding,Android,Performance,Android Databinding,我知道数据绑定可以比findViewById快得多 这是f.e.在这里解释的: 我现在想知道以下哪个选项更快: 选项A xml: 选项B xml: 仅仅因为你认为这两个选项是完美的替代品,你就试图最小化成本(在速度上),即使从结果中根本看不到差异 事实上,即使两个选项的结果相同,第二个选项也可以在将来决定(很可能)使用ViewModel和LiveData时为您提供更大的灵活性,因为它们为您提供了许多好处,只需对代码进行少量调整 例如,您可以创建一个包含所有可变LiveData的视图模型: pub

我知道数据绑定可以比
findViewById
快得多
这是f.e.在这里解释的:

我现在想知道以下哪个选项更快:

选项A

xml:

选项B

xml:


仅仅因为你认为这两个选项是完美的替代品,你就试图最小化成本(在速度上),即使从结果中根本看不到差异

事实上,即使两个选项的结果相同,第二个选项也可以在将来决定(很可能)使用ViewModel和LiveData时为您提供更大的灵活性,因为它们为您提供了许多好处,只需对代码进行少量调整

例如,您可以创建一个包含所有可变LiveData的视图模型:

public class MyVM extends ViewModel {
    private MutableLiveData<String> title = new MutableLiveData<>();
    private MutableLiveData<String> text = new MutableLiveData<>();
}
公共类MyVM扩展了ViewModel{
私有MutableLiveData title=新的MutableLiveData();
私有MutableLiveData text=新的MutableLiveData();
}
将整个viewmodel设置为xml中的变量,并直接使用变量:

mBinding.setNiceViewModel(myVM);

<variable
     name="niceViewModel"
     type="MyVM" />

 ...
 <TextView
     android:text="@{niceViewModel.title}"/>

<TextView
     android:text="@{niceViewModel.text}"/>
mBinding.setNiceViewModel(myVM);
...

我确实使用ViewModel和LiveData。但在《观察家》中,我仍然可以调用这两个选项中的任何一个,对吗?你的建议基本上更方便,但就速度而言,它实际上是一样的?为什么没有理由就投反对票?哪一个方面不好成为否决票的理由?
 <variable
     name="dummy"
     type="String" />

 ...
 <TextView
     android:text="@{dummy}"/>
mBinding.setDummy("DummyText")
public class MyVM extends ViewModel {
    private MutableLiveData<String> title = new MutableLiveData<>();
    private MutableLiveData<String> text = new MutableLiveData<>();
}
mBinding.setNiceViewModel(myVM);

<variable
     name="niceViewModel"
     type="MyVM" />

 ...
 <TextView
     android:text="@{niceViewModel.title}"/>

<TextView
     android:text="@{niceViewModel.text}"/>