运行 pngcrush 超过 1000 张图片后,APK 文件大小没有改变

APK file size not changed after running pngcrush on over 1000 images

我已经为带有游戏板和字母图块图像的文字游戏生成了一个发布 APK 文件,其大小为 14.157.885 字节

然后我在我的 Android Studio 项目中有大约 1000 张图像 运行 pngcrush,然后是 "Clean Project"、"Rebuild Project",最后是 "Generate Signed APK..." 再次。

令人惊讶的是,生成的 APK 文件更大:14.158.735 字节

我在 Windows 7 x64 和 Mac OS Yosemite.

上使用 Android Studio 得到了相同的结果

您可以在下面看到 pngcrush 确实减少了位图大小 - 在 git 日志中:

APK 文件肯定是某种 ZIP 存档 - 但为什么它的大小增加了?

更新:

问这个问题的真正原因是因为我使用 SQLiteAssetHelper 包含了一个 gzipped SQLite 文件(大小:4.988.928 字节)并且我很担心 - 如果APK 文件足够小,可以 运行 在较旧的 Android 设备上使用。

aapt 内置了一个 pngcrush 等效项,并且 运行 将其作为资源打包过程的一部分添加到您的输入文件中。对于高度优化的输入文件,您可能会 aapt 失去 运行 自己优化的机会。

如果您想使用自己的,可以通过 gradle 设置禁用 aapt:

aaptOptions {
    cruncherEnabled = false
}

来源: Issue 65335: aapt can make PNG files larger if they have been already optimized