使用ProGuard时,是否可以在GSON注释中混淆字符串?

时间:2017-05-24 14:13:19

标签: android gson proguard android-proguard android-security

我正在尝试使用ProGuard缩小,优化和混淆我的应用程序。除了GSON注释外,一切正常。我的申请表中有这样的内容:

@Expose
@SerializedName("testbla")
private String test;

当我使用ProGuard时,它变成了这样的东西:

@com.google.a.a.a
@c(a="testbla")
private String a;

所以有某种混淆,但" testbla"仍然可读。 我已在文档中读到字符串常量不会被ProGuard混淆(例如https://www.guardsquare.com/en/proguard/faq#encrypt)。不过,如果有任何选择,我想混淆那些字符串。那么有任何可能性请告诉我!

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

ProGuard不会混淆字符串。

Gson注释确保您的映射类能正常工作非常重要。

如果删除注释并使用proguard,当您的应用需要将JSON转换为POJO时,将发生错误。因为代码会尝试找到属性" a"而不是"测试" (因为你的代码被混淆了)。 因此,Gson注释它很重要。

还有其他混淆代码的选项,例如DexGuard,但它不是免费的。

查看差异: Link