当前位置: 首页 > 知识库问答 >
问题:

如何判断ProGuard是否完成了任务

上官高翰
2023-03-14

我下载了封装在zip文件中的proGuard,并将其解压缩到我的硬盘上。我没有以任何方式安装它(因为我不知道如何安装)。然后,我将proguard.config=proguard.cfg添加到我的project.properties文件中。然后我做了一个“导出Android应用程序”,完全期待eclipse抱怨它不知道我的proGuard安装在哪里,但没有抱怨。事实上,一个新的apk文件出现在我的keystore中,一组文件(dump.txt等)出现在我的应用程序的proGuard子目录中。mapping.txt看起来像一个很好的映射列表,从我的长变量名到一个和两个字母变量。这一切都应该是proGuard以某种方式奏效的有力证据——我唯一担心的是apk几乎没有比以前小。有没有办法检查apk是否包括proGuard的混淆?

共有2个答案

湛玄裳
2023-03-14

@Kuffs方法的另一个替代方法是将新APK与旧APK进行比较。打开它们(使用7zip或您喜欢的工具)并比较类的大小。它们中的每一个都包含dex文件。

有几个简单的原因,您可能看不到有多大的尺寸节约:

  • 未混淆的classes.dex能够被压缩得比模糊的多得多。在某种程度上,这总是正确的。
  • 您没有进行发布构建。由于调试模糊的代码是一场噩梦,ProGuard只在发布版本中运行。
  • 您正在使用的ProGuard设置对您的项目没有多大好处(至少在代码大小方面)。实际上,我以前见过proGuard的代码内联设置增加jar文件的大小!
那绪
2023-03-14

通常,大小将指示ProGuard是否工作,但您可以:-

  1. 使用Dex2Jar将apk转换为jar文件
  2. 用Jd-Gui打开生成的Jar文件,查看其中包含的代码
 类似资料:
  • 问题内容: 我下载了封装在zip文件中的proguard,并将其解压缩到硬盘上。我没有以任何方式 安装 它(因为我不知道如何安装)。然后,我将其添加到我的project.properties文件中。然后,我做了一个“导出android应用程序”,完全希望eclipse抱怨它不知道我的proguard安装在哪里,但是没有抱怨。确实,我的密钥库中出现了一个新的apk文件,而我的应用程序的proguar

  • 问题内容: 我正在将广泛的后台任务推算给sidekiq工作者(第一次使用sidekiq)。 我已经能够使其正常运行。 但是我不确定如何检查sidekiq工作程序的进度-检查工作程序是否已通过perform_async函数完成的最佳方法是什么? AutoWorker sidekiq任务: 从我的控制器调用: 问题答案: 将以下扩展gem检出到sidekiq:https : //github.com/

  • 我有一台电脑,我故意安装了JDK。我有另一台带有JRE的计算机,除其他外,用于测试。然而,当我在这台计算机上使用一个java应用程序,然后在另一台计算机上试用时,它抱怨说需要JDK。如何检查系统上是否安装了JDK?注意:有问题的计算机是Mac。

  • 本文向大家介绍Android 判断是否连接成功了指定wifi,包括了Android 判断是否连接成功了指定wifi的使用技巧和注意事项,需要的朋友参考一下 最近在做wifi的相关的东西,打印WifiInfo的时候 无意间发现一个参数,改参数可以查看是否连接成功了指定wifi,但是这是隐藏的,遂将其反射之。代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也

  • 浏览器开启了 HSTS(HTTP Strict Transport Security)功能,它会告诉浏览器只能通过 https 访问,绝对禁止 http 方式,所以浏览器中输入http 后自动转成了 https。 疑问:如何得知浏览器是否开启了此功能? 原因:项目内需要跳转到新标签页,浏览器强制转换协议会报错(502)

  • 本文向大家介绍jQuery 判断图片是否加载完成方法汇总,包括了jQuery 判断图片是否加载完成方法汇总的使用技巧和注意事项,需要的朋友参考一下 对于图片的处理,例如幻灯片播放、缩放等,都是依赖于在所有图片完成之后再进行操作。 今天来看下如何判断所有的图片加载完成,而在加载完成之前可以使用 loading 的 gif 图表示正在加载中。 一、普通方法 监听 img 的 load 方法,每 loa