使用ProGuard缩小代码后,在APK分析器中的哪里可以找到我的BuildConfig?

时间:2019-05-27 01:04:54

标签: android proguard buildconfig android-buildconfig

请查看以下来自Android Studio中的分析APK 的以下图像。

  • 第一个与minifyEnabled = false
  • 另一个与minifyEnabled = true一起使用(当然是在使用mapping.txt解码之后)

enter image description here
minifyEnabled = falseBuildConfig在这里。

enter image description here
minifyEnabled = true(使用mapping.txt解码)。 BuildConfig不存在。

我可以在缩小之前在BuildConfig中找到classes.dex,但在缩小之后找不到。我找不到与此有关的任何文档/讨论,但是在使用 ProGuard 缩小后,有没有从BuildConfig剥离classes.dex的规则?在那种情况下,这是否意味着将敏感信息放入BuildConfig相对安全?或者,它可能只是藏在其他地方?

如果这很重要,我的ProGuard版本是4.7。

2 个答案:

答案 0 :(得分:3)

缩小步骤的另一个功能是常量的内联。这可以解释为什么BuildConfig消失了,而值仍然存在于需要的地方。一旦值被内联,就不再有对BuildConfig类的引用,并且压缩程序可以将其完全删除。

答案 1 :(得分:0)

如果您在BuildConfig上使用某些变量,则proguard不会将其删除。根据他们的manual

  

收缩步骤检测并删除未使用的类,字段,方法和属性。优化步骤分析并优化了方法的字节码。混淆步骤使用简短的无意义名称重命名其余的类,字段和方法。

此外,我一直在使用这些选项,而且从未遇到过proguard在BuildConfig上剥离我的信息的情况。

shrinkResources true
minifyEnabled true