【问题标题】:Obsfucation + Butterknife/Databinding混淆+小刀/数据绑定
【发布时间】:2017-10-18 10:09:31
【问题描述】:

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

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

  • 数据绑定库也不会混淆类吗?

  • 从黄油刀切换会影响我的应用的性能/大小吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      相关资源
      最近更新 更多