如何判断Proguard是否完成了它的工作

2022-09-01 20:26:24

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


答案 1

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

  1. 使用Dex2Jar将apk转换为jar文件
  2. 使用 Jd-Gui 打开生成的 Jar 文件以查看其中包含的代码

答案 2

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

一些简单的原因,你可能没有看到太多的尺寸节省:

  • 未混淆的class.dex能够比混淆的类被压缩得更多。在某种程度上,这总是正确的。
  • 你没有执行发布版本。Proguard 仅在发布版本上运行,因为调试混淆代码是一场噩梦。
  • 您正在使用的 Proguard 设置对您的项目没有多大好处(至少在代码大小方面)。我之前实际上已经看到proguard的代码内联设置增加了jar文件的大小!

推荐