【发布时间】:2017-10-24 22:48:39
【问题描述】:
我正在尝试使用 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)。不过,如果有任何选择,我想混淆这些字符串。那么有没有可能,请告诉我!
感谢您的帮助!
【问题讨论】:
-
我想这没有意义。那么 Gson 怎么知道如何映射 JSON 属性和你的 POJO 字段呢? ProGuard 做得对。如果你真的想要混淆它们,你必须重新实现你自己的
ReflectiveTypeAdapterFactory。 -
我不确定 Android,但在“普通”Java 中,您还可以创建自定义类加载器,以便对使用 ProGuard 处理的类应用一些解密。在 Java 中实现起来真的很容易,而且可能在 Android 中。
标签: android gson proguard android-proguard android-security