1

我目前使用Butterknife为我的代码注入视图。 当我使用minifyenabled时,我注意到类名不会混淆,因为butterknife需要正确的类名来生成绑定的代理类。 (MainActivity.class - > MainActivity_ViewBinding.class)Obsfucation + Butterknife/Databinding

我愿意切换到android studio中的“新”数据绑定库。但由于考虑到我的项目很多,所以这是很多工作,这里是我的问题:

  • 数据绑定库是否也不会模糊类?

  • 从butterknife切换会影响我的应用程序的性能/大小?

感谢

回答

1

不像Butterknife,数据绑定不使用反射。这是所有生成的代码。因此:

  • 类将使用数据绑定进行混淆。我发现这对我从Butterknife转换而来的应用程序来说是真实的。
  • 表现可能会略好,但我不会期望获得很大的收益。我没有对它进行基准测试。
  • 数据绑定库似乎没有拉入任何其他库,所以在尺寸方面,应该不需要担心;不记得Butterknife有什么依赖,我的猜测是有一些的。数据绑定库自己添加了约60个类,其中大多数不会实际使用。使用Proguard(或Android Shrinker)来消除未使用的类和方法也会最大限度地减少这种影响;不知道Butterknife库引入了多少个类&。另外,还有两种方法从代码生成类,但它们对尺寸的影响不应该那么显着。