将所有可绘制对象转换为 WebP,apk 大小保持不变

Converted all drawables to WebP, apk size stayed the same

很困惑。我刚刚将 res 文件夹中的很多可绘制对象转换为无损 WebP 格式。正如我所做的那样,Android Studio 告诉我我节省了 6mb,但是我只是构建了一个生产发布的 apk,一个用于带有 WebP 图像的 b运行ch 和一个仍然为 PNG 的所有内容,区别可以忽略不计。 PNG apk 大小为 23.2MB,WebP apk 大小为 21.3.

我 运行 apk 分析器工具,我可以看到最大的不同是我的 res 文件夹现在小了 7MB,但这不是运行指定的 apk 大小吗?

这是 apk 分析器的结果,首先是旧的 apk (PNGs) 左边的数字是未压缩的,右边的值是压缩的,所以在 apk 中输出给用户的是什么:

其次是新的 apk (WebP):

可绘制文件明显变小了,我在 res 中最大的文件夹现在是 200kb。

曾在 Android 中使用过 WebP 的人可以提供一些信息来说明为什么这不起作用吗? apk 分析器中没有其他数字发生变化。

编辑:抱歉图片太小,在新标签页查看更清楚

解决了它发生的原因。

我在 build.gradle 的发布版本中将 shrinkResources 设置为 true,因此压缩已经开始。

说的很有道理,我错了,完全忘了。

对 PNG 文件使用 cwebp -near_lossless 40 可以获得更好的结果。我怀疑自动 shrinkResources 是否能够近乎无损地使用。这可能会再提供 30-40% 的压缩增益,这在很大程度上取决于您拥有的图形类型。