24

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

4

2 回答 2

45

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

  1. 使用Dex2Jar将 apk 转换为 jar 文件
  2. 使用Jd-Gui打开生成的 Jar 文件,查看其中包含的代码
于 2012-04-17T12:33:44.997 回答
1

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

您可能看不到尺寸节省很多的几个直接原因:

  • 未混淆的 classes.dex 能够比经过混淆的类压缩得多。这在某种程度上总是正确的。
  • 您没有进行发布构建。Proguard 只能在发布版本上运行,因为调试混淆代码是一场噩梦。
  • 您使用的 Proguard 设置对您的项目没有多大好处(至少在代码大小方面)。我之前实际上已经看到 proguard 的代码内联设置增加了 jar 文件的大小!
于 2012-04-17T12:46:41.367 回答