Android:什么是Proguard和ProGuard映射

时间:2016-08-23 07:29:55

标签: android crash proguard

当我检查我的应用程序崩溃时,注意到了这个报告

上传您的ProGuard反混淆文件,以便对此APK版本的未来堆栈跟踪进行反混淆处理。 检查了这个链接,但没有理解 https://support.google.com/googleplay/android-developer/answer/6295281?hl=en

3 个答案:

答案 0 :(得分:3)

正如我在这里的回答,Proguard是你尝试编译apk时的主要过程之一(特别是当你将apk发布到Google Play商店时)

  1. 模糊处理

  2. 优化

  3. 收缩

  4. Android studio import problems. (Apktool)

    以简单的方式说出来,你可以看到如何通过使用一些逆向工程技术看到 apk没有proguard

    https://ahbsa.wordpress.com/2015/04/30/decompiling-apk-reverse-engineering-android-application/

    通过使用一些逆向工程技术,带有proguard的apk中的类将是类似的东西

    enter image description here

    你现在可能有了头脑。即使你使用了Proguard,.dex类仍然可以被转换。但是如果使用Proguard,代码几乎是不可读的。如果您使用了一些更先进的技术(例如Dexguard),它们可以提供更好的性能,并且在对.dex类进行反编译后代码会更复杂。

答案 1 :(得分:0)

您使用的程序有很多原因,如本问卷所述。 Should I use ProGuard?

如果链接断开,我正在复制此问题的答案:

对Android应用程序进行逆向工程很容易,所以如果你想防止这种情况发生,是的,你应该使用ProGuard来实现它的主要功能:混淆。

ProGuard还有另外两个重要功能:缩小功能,可以消除未使用的代码,显然非常有用,也可以进行优化。然而,优化使用Java字节码进行操作,并且由于Android运行在从Java字节码转换的Dalvik字节码上,因此某些优化将无法正常工作。所以你应该小心。

有关于如何在Android网站上使用proguard的说明。你需要检查的主要是你有

proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt:proguard-project.txt 在project.properties文件中。由于您提到您使用的是Android Studio且没有此文件,但系统会询问您有关配置文件的信息,请尝试选择Android SDK中的文件(tools / proguard / proguard-android.txt)。

答案 2 :(得分:0)

在android studio中

1)转到Project' build.gradle" (模块的build.gradle不是根目录build.gradle文件)

2)编辑它并在" buildTypes"添加类型(因为我添加了发布和调试模式)

3)这里" minifyEnable"是proguard选项make it通过将其设置为TRUE(释放和调试,我在发布模式下为true,在调试模式下为false)启用以在相应模式下运行proguard

4)之后排 " proguardFiles getDefaultProguardFile(' proguard-android.txt'),代表proguard规则文件 你将在应用程序模块(模块)中获得这个名称" proguard-rules.pro"(你可以识别上面一行的最后一个条目) edite /为proguard添加规则。

5)在这里你完成了!

如果我遗失了什么,请告诉我。谢谢。

proguard rules