2

编写代码时是否有关于如何有效利用 ProGuard/DexGuard 的指南?我从某处读到,最好将所有敏感数据放在不同的类中,而不是将其放在Activity类本身中,因为Activity类不能被混淆。如何对我的应用程序进行编码,以最大限度地利用 ProGuard/DexGuard?如果您打算使用 ProGuard/DexGuard 来避免应用程序损坏,编码时是否有任何规则?

4

2 回答 2

1

是的你是对的。

将所有“秘密”代码放入混淆方法中,并让公共方法 onyl 调用混淆方法:

例子

public static void main(final String[] args) {
    SecretKnowHowWorker.doWork(args);
 }

main不能或不应该混淆,但其余部分将被混淆。在 Eclipse 中,当您单击混淆的 jar 文件时,您可以单击“Referenced Librraies”,您知道什么被混淆了,什么没有。

于 2012-11-26T21:20:55.603 回答
1

Activity 类可以完全混淆,但是某些方法的名称(onCreate()例如不能)。因此,将您的敏感内容放在诸如已知方法(所有这些您希望框架调用的方法)之类的入口点之外,它应该会更好。我还建议尝试破解你自己的应用程序,看看它在解码后的样子,并努力让它看起来更糟:)

于 2012-11-26T21:23:30.200 回答