使用webp压缩安装包。加快网络图片加载

       WebP是Google提供的图像文件格式,支持有损压缩(如JPEG)和透明度(如PNG),基于更先进的压缩算法,可以提供比JPEG/PNG更好的压缩效果。 Android 4.0(API-14)开始支持有损WebP图像,Android 4.3(API-18)开始支持无损且透明的WebP图像。
       由于现在Google Play已经强制要求开发者采用的targetVersion不得小于26。因此绝大多数应用的minsdkVersion都已提升至14。因此在jpg转换webp上可以说是毫无障碍的。
       appcompat的最低兼容:

appcompat版本号 最低兼容API级别 对应版本号
v23.X.X API-7 安卓2.1
v25.X.X API-9 安卓2.3
V26.X.X API-14 安卓4.0
V28.0.0(最新) API-14 安卓4.0

minsdk问题

当项目设置的minsdk小于18时,无损压缩是不可用的。如果对图像质量要求很高必须使用无损压缩,可利用dimens版本适配,暂时先将minsdk提升至18,将需要转换的图片转换完成后放入drawable-xhdpi-v18中,原图保留在drawable--xhdpi中,转换完毕后再将minsdk还原。

转换选项解释

  • 对整个drawable文件夹或者单个jpg/png选中右键菜单,选择convert to webp...
  • 转换菜单可选项如下:

实际效果

  • 无损压缩:
    • jpg格式无损压缩:可能出现比原图更大的问题。不考虑
    • png格式无损压缩:根据图片展示内容,也可能出现比原图大的情况,如果是简单的线条图案,可以压缩40%左右
  • 有损压缩:可以预览压缩比例,默认75%
    • jpg格式有损压缩:左侧显示原图,右侧显示结果图,中间显示两者差异。可拖动下方seekbar选择压缩质量 当采用75%有损压缩,可减小10%-90%的存储空间。
    • png格式有损压缩:预览选择最优效果,可减小20%-80%的存储空间。实测发现安卓4.2(API-17)是支持alpha-png转换的webp,而不是官方所说的从4.3开始支持。如图所示:(左侧安卓4.2,右侧安卓8.1)

webp的网络加载

服务端如果下发webp格式的图片,由于图片变小,可以显著减少带宽开销,并提升加载速度。

结论

  • webp的转换对apk的瘦身效果是非常明显的。测试使用的项目只进行了xhdpi适配,转换后进行apk分析,drawable-xhdpi由4.4M缩小到2.0M。
  • drawable资源文件如果只提供一份,谷歌目前的建议是提供xxhdpi,对应ios的三倍图。因为安卓手机普遍大屏化,以往xhdpi适配在大屏手机上确实会有模糊问题

你可能感兴趣的:(使用webp压缩安装包。加快网络图片加载)