相关文章地址:https://www.jianshu.com/p/e91bce8cac2c
https://www.jianshu.com/p/d8826263ad09
1、从静态资源文件质量方面的优化
通过第三方网站手动压缩图片,网址:https://tinypng.com/;
AndroidStudio gradle插件:https://github.com/duking666/ImgCompressPlugin
原理:TinyPNG使用智能有损压缩技术来减少PNG文件的文件大小。 通过选择性地减少图像中的颜色数 量,存储数据所需的字节更少。 效果几乎是不可见的,但它在文件大小上产生了很大的差异!
优点 : 服务端:缩小质量,节省服务器资源;客户端:提升加载速度,节省流量,本地资源文件质量小,能够减少App体积,为 用户节省流量,少占用移动设备的内存。
2、移动端上传使用libjpeg进行图片压缩(哈夫曼算法,无损压缩),(ios系统自带,仅供android开发者参考)
博客地址:https://blog.51cto.com/13598859/2070274
项目链接:https://github.com/ewgcat/CompressImageByHuffman
3、弱网情况下加载
(1)选择Google的WebP。
理由:压缩效率高,而且对android的支持更优秀,使用WebP后,相对于JPG格式的图片,流量节省了将近25%到35%;
相对于PNG格式的图片,流量节省了将近80%,最重要的是使用WebP之后,图片质量没有下降。
(2)优化网络请求目前第三方图片加载框架Glide已经很成熟,如果有更好的算法,可以自行设计图片下载加载框架。推荐Glide
4.加载顺序
app最先加载适合图片展示窗口的图片。如果需要缩略图,app就只加载缩 略图大小的图片,用户需要最高分辨率的图片,app再加载大图。
网友评论