Obsfucation + Butterknife / Databinding

时间:2017-05-18 14:19:44

标签: android-studio android-gradle android-databinding butterknife

我目前使用Butterknife将视图注入我的代码中。 当我使用minifyenabled时,我注意到类名没有被禁止,因为butterknife需要正确的类名来生成将进行绑定的代理类。 (MainActivity.class - > MainActivity_ViewBinding.class)

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

  • 数据绑定库是否也不会阻止这些类?

  • 从butterknife切换是否会影响我的应用的性能/尺寸?

由于

1 个答案:

答案 0 :(得分:2)

与Butterknife不同,Data Binding不使用反射。它都是生成的代码。所以:

  • 类将使用数据绑定进行模糊处理。我发现这对我从Butterknife切换的应用程序来说是真的。
  • 性能可能略好一些,但我不会期望获得太多收益。我没有对它进行基准测试。
  • 数据绑定库似乎不会引入任何其他库,因此在大小方面,应该没有问题;不记得Butterknife有什么依赖,我的猜测是有一些。数据绑定库本身可以添加大约60个类,其中大部分都是您实际使用过的。使用Proguard(或Android Shrinker)来消除未使用的类和方法也可以最大限度地减少这种影响;不确定有多少课程和Butterknife库引入的方法。此外,您的代码使用这两种方法生成了类,但它们对大小的影响不应该那么重要。