我想防止我的应用程序被其他人进行反向工程和反编译。如何在项目中激活 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);
}
我应该把它写到我的应用程序中吗?
要在项目中简单地激活启用:
- 在项目中创建一个名为
<project_root>/proguard.cfg
的文件。 - 在您的
<project_root>/project.properties
中,添加proguard.config=proguard.cfg
。
然后,您需要在 proguard.cfg 文件中为您的项目定义 Proguard 配置。您可以从 Proguard 网站阅读有关此文件的各种 proguard 选项的信息。您可以在文档中阅读有关将 Proguard 与 Android 配合使用的更多信息。
Progaurd混淆了代码,使其难以进行逆向工程。需要保留 proguard 生成的映射文件,以防您可能需要重新设计代码。我想说的是,将其用于任何市场构建都非常方便。
编辑
progaurd.cfg 会在您通过 eclipse 创建 Android 项目时自动创建。
您现在可能希望为您的项目启用 progaurd。可能有一个文件说 default.properties,其中包含应用程序的目标。您可能需要添加以下行
proguard.config = proguard.cfg
为您的应用程序启用 Progaurd。现在,您已为启用 progaurd 的应用程序做好了一切准备。如果成功配置了 progaurd,在导出 apk 时,您可能会看到生成的文件夹 progaurd,其中包含文件列表。(请参阅提供的链接中的启用 Progaurd)。希望对你有帮助