【问题标题】:Android: What is Proguard and ProGuard mappingAndroid:什么是 Proguard 和 ProGuard 映射
【发布时间】:2016-08-23 07:29:54
【问题描述】:

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

上传您的 ProGuard 去混淆文件,以便去混淆此 APK 版本的未来堆栈跟踪。 检查了这个链接,但不明白 https://support.google.com/googleplay/android-developer/answer/6295281?hl=en

【问题讨论】:

    标签: android crash proguard


    【解决方案1】:

    作为我的回答,Proguard 是您尝试编译 apk 时的主要过程之一(尤其是当您将 apk 发布到 google play 商店时)

    1. 混淆

    2. 优化

    3. 收缩

    Android studio import problems. (Apktool)

    简单来说,你可以看看使用一些逆向工程技术如何看待没有proguard的apk

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

    使用一些逆向工程技术,apk 中带有 proguard 的类会是这样的

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

    【讨论】:

      【解决方案2】:

      您使用 proguard 的原因有很多,如本问题中所述。 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)。

      【讨论】:

        【解决方案3】:

        在安卓工作室

        1) 进入Project的“build.gradle”(Module的build.gradle不是根目录build.gradle文件)

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

        3)这里的“minifyEnable”是proguard选项,通过将其设置为TRUE(发布和调试,我在发布模式下设置为真,在调试模式下设置为假)启用在相应模式下运行proguard)

        4) 之后的行 "proguardFiles getDefaultProguardFile('proguard-android.txt'),代表proguard规则文件 您将通过名称“proguard-rules.pro”在应用程序模块(模块)中获得此信息(因为您可以识别上一行中的最后一个条目) 编辑/添加 proguard 规则。

        5) 你完成了!

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

        proguard rules

        【讨论】:

          猜你喜欢
          • 2020-01-30
          • 1970-01-01
          • 2011-05-25
          • 2012-12-05
          • 1970-01-01
          • 1970-01-01
          • 2016-04-05
          • 1970-01-01
          • 2016-12-11
          相关资源
          最近更新 更多