混淆 + Butterknife/Databinding

Obsfucation + Butterknife/Databinding

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

我愿意切换到 android 工作室中的 "new" 数据绑定库。但是考虑到我的项目很大,所以需要做很多工作,这是我的问题:

谢谢

与 Butterknife 不同,数据绑定不使用反射。这都是生成的代码。所以:

  • 类 将混淆数据绑定。我发现从 Butterknife 切换过来的我自己的应用程序也是如此。
  • 性能可能会稍微好一些,但我不希望有太大的收获。我还没有对它进行基准测试。
  • Data Binding 库似乎没有引入任何其他库,所以在大小方面,应该没有问题;不记得 Butterknife 有哪些依赖项,我猜是有一些。数据绑定库本身添加了大约 60 类 个,其中大部分您不会实际使用。使用 Proguard(或 Android Shrinker)消除未使用的 类 和方法也可以将这种影响降到最低;不确定 Butterknife 库引入了多少 类 和方法。此外,使用这两种方法从您的代码中生成了 类,但它们对大小的影响应该不会那么显着。