Android 中图片优化也是个常见的问题,否则 OOM 就会经常找上门来。
图片的格式
目前 Android 端支持的图片格式有 JPEG、GIF、PNG、BMP、WebP,但是在 Android中能够使用编解码使用的只有其中的三种
JPEG、PNG、WebP
- JPEG:是广泛使用的有损压缩图像标准格式,它不支持透明和多帧动画
- PNG:是一种无损压缩图片格式,它支持完整的透明通道,由于是无损压缩,所以它的占用空间一般比较大。
- GIF:它支持多帧动画
- WebP:它支持有损和无损压缩,支持完整的透明通道也支持多帧动画,是一种比较理想的图片格式。
图片压缩
- 无损压缩 ImageOption
ImageOption 是一个无损的压缩工具,它通过优化PNG 的压缩参数,移除冗余元数据以及非必须的颜色配置文件等方式,在不牺牲图片质量的前提下,既减小了 PNG图片占用的空间,又提高了加载的速度。
有损压缩 ImageAlpha - ImageAlpha 是 ImageOptions 作者开发的一个有损的 PNG 压缩工具,相比较而言,图片大小得到极大的降低,当然图片质量同时也会受到一定程度的影响,经过该工具压缩的图片,需要经过设计师的检视才能上线,否则可能会影响到整个 APP 的视觉效果
使用有损压缩工具 TinyPNG 等 - PNG/JPEG 转换为 WebP
- 尽量使用 .9格式的PNG 图,因为它体积小,拉伸不变形能够适配 Android 各种机型。
图片加载和缓存
常见的图片加载缓存库有 Picasso、Glide、Fresco
- Picasso 是 Square 公司开源的图片加载库,它实现图片的下载和二级缓存缓存功能,库文件 120KB
- Glide 是 Google 推荐的用于 Android 平台上的图片加载和缓存库,库文件 475KB
- Fresco 是 Facebook 开源的功能强大的图片加载库,如对图片显示要求很高可选择该库。该库最显著的特点是实现了三级缓存,两级内存缓存一级磁盘缓存。库文件 3.4MB
网友评论