Android 高级进阶-图片优化笔记

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

根据 App 对图片显示和缓存的需求从低到高的选择顺序:Picasso < Glide < Presco

猜你喜欢

转载自blog.csdn.net/weixin_34239169/article/details/87405759