4

我想防止我的应用程序被其他人反向工程和反编译。如何在我的项目中激活 proguard 以帮助我实现这一目标?

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

我应该把它写到我的应用程序中吗?

4

2 回答 2

4

要在您的项目中简单地激活启用:

  1. 创建一个<project_root>/proguard.cfg在您的项目中调用的文件。
  2. 在您的<project_root>/project.properties中,添加proguard.config=proguard.cfg.

然后,您需要在 proguard.cfg 文件中为您的项目定义 Proguard 配置。您可以从Proguard 网站了解进入此文件的各种 proguard 选项。您可以在文档中阅读更多关于在 Android 中使用 Proguard 的信息。

于 2012-06-25T06:56:52.963 回答
3

Progaurd混淆了代码,使得逆向工程变得困难。需要保留 proguard 生成的映射文件,以防您可能需要重新设计代码。我想说,将它用于任何市场构建都非常方便。

编辑

progaurd.cfg 在您通过 Eclipse 创建 Android 项目时会自动创建。

您现在可能想要为您的项目启用 progaurd。可能有一个文件说 default.properties 其中包括您的应用程序的目标。您可能需要添加以下行

proguard.config = proguard.cfg

为您的应用程序启用 progaurd。您现在已经为启用 progaurd 的应用程序做好了准备。如果 progaurd 配置成功,在导出您的 apk 时,您可能会看到一个文件夹 progaurd 生成,其中包含文件列表。(请参阅提供的链接中的启用 Progaurd)。希望能帮助到你

于 2012-06-25T06:50:05.900 回答