转载

apk 瘦身系列⑥:图片优化、Zopfli & WebP

作者: rain 分类:移动 发布时间: 2016-03-11 22:42 ė 11 次浏览 6 条评论

每个应用都会包含一些图片资源。图片资源在两方面影响一个程序所占用的空间:一,图片资源打包到 apk 中;二,应用从网络上下载图片并保存在本地。本章所讨论的优化策略适用于这两种情况。

常用的图片格式为 JPEG 和 PNG。这两种类型的区别:

  • JPEG 通常应用于背景图和内容图片。不支持透明色。不同的压缩等级和质量对最终图片的大小有很大影响,如果你使用 JPEG 图片,可以尝试各种压缩等级来找到一个最佳平衡点。
  • PNG 通常应用于 图标、logo、分割线等。支持透明色。具有大面积相同颜色的图标压缩率最高,而渐变色或者大图则会占用更多的空间。

WebP

Android 还支持另外一种图片格式: WebP 。该格式可以替代 JPEG 和 PNG 格式图片并且通常可以减少 30% 的文件大小。

WebP 是从 android 4.0 系统引入的,所以只能应用到 4.0+ 系统以上。部分 WebP 的新特性只能在 4.2.1+系统使用 ,比如transparency、 lossless。

WebP 图片会需要 cpu 在运行时解析图片,所以加载图片的时间会稍长一些。应用启动图标不能使用 WebP 格式图片。

Zopfli-compressed PNGs

如果你还不想使用 WebP 图片,则 使用Zopfli 来优化你的 PNG 图片一样可以大幅度减少 图片尺寸。详细使用方式可以参考 这里 。如果你使用 Zopfli 来处理图片,则记得禁用 build 工具的 图片 cruncher 功能:

build.gradle

Java

android {     ...     aaptOptions {         cruncherEnabled = false     } }
android {     ...     aaptOptions {         cruncherEnabled = false     } } 

这是应为 AAPT 工具并不会比较图片优化前后的大小,所以如果你的图片已经优化过了, 再次使用 cruncher 可能会导致图片变大。

虽然禁用了 cruncher, 但是 cruncher 还是会处理 点9图片的, 由于 点9图使用不同的处理方式。

本文出自 云在千峰,转载时请注明出处及相应链接。

本文永久链接: http://blog.chengyunfeng.com/?p=893

原文  http://blog.chengyunfeng.com/?p=893
正文到此结束
Loading...