首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓:什么是Proguard和ProGuard映射?

安卓:什么是Proguard和ProGuard映射?
EN

Stack Overflow用户
提问于 2016-08-23 07:29:54
回答 4查看 5K关注 0票数 9

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

上传您的ProGuard解模糊文件,以消除此APK版本的未来堆栈跟踪。检查了此链接,但不理解https://support.google.com/googleplay/android-developer/answer/6295281?hl=en

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-23 09:04:04

作为我的回答,当您试图编译apk时(特别是当您将apk发布到google商店时,Proguard是主要的过程之一)。

  1. 混淆
  2. 优化
  3. 缩缩

安卓工作室导入问题。(Apktool)

简单地说,您可以看到如何通过使用一些反向工程技术来查看没有proguard的apk。

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

apk中的类与pro卫士类似,使用一些反向工程技术。

你现在可能有想法了。即使您使用了Proguard,.dex类仍然可以被分解。但是如果您使用Proguard,代码几乎是不可读的。如果您使用了一些更高级的技术(如Dexguard),它们可以提供更好的性能,并且在解压缩.dex类之后代码将变得更加复杂。

票数 4
EN

Stack Overflow用户

发布于 2016-08-23 07:44:39

如本报告所述,您所使用的保护程序有许多原因。我应该使用ProGuard吗?

我正在复制这个问题的答案,以防链接中断:

逆向工程安卓应用程序很容易,所以如果你想防止这种情况发生,是的,你应该使用ProGuard作为它的主要功能:混淆。

ProGuard还有另外两个重要的功能:收缩,它消除了未使用的代码,显然是非常有用的,也是优化的。不过,优化使用Java字节码,因为Android运行在Dalvik字节码上,而Dalvik字节码是从Java字节码转换而来的,因此有些优化将不能很好地工作。所以你应该小心点。

有关于如何在Android网站上使用Pro卫队的说明。你需要检查的主要内容是你有线路

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt在您的project.properties文件中。既然您提到您使用的是android.txt,并且您没有这个文件,但是您被问及配置文件时,请尝试选择Android中的配置文件(tools/proguard/proGuid-android.txt)。

票数 0
EN

Stack Overflow用户

发布于 2016-08-23 08:07:10

在安卓工作室

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

2)编辑它并在"buildTypes“下添加类型(正如我添加的版本和调试模式一样)

3)在这里,"minifyEnable“是proguard选项,使它能够在各自的模式下通过设置TRUE (Release,在发布模式下为true,而在调试模式中为false )启用proguard。

4)在“getDefaultProguardFile('proguard-android.txt'),”之后的行"proguardFiles“表示Pro卫士规则文件,您将在app模块(ProguardFiles)中获得该文件,名为”proguard -rues.pro“(因为您可以识别上一行的最后一条条目) edite/add。

5)你在这里完成了!

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

防护规则

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39094943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档