初始化时会判断图片的类型, 并生成每一帧的信息....基于上述的问题, 应该将逐帧加载思路应用到端内, 在动图加载到内存时, 只从二进制数据中解码第一帧; 然后在 CADisplayLink 触发时解析当前需要展示的帧, 同时合理地使用帧缓存, 避免上述...4.1 解码每一帧导致首帧加载太慢
怎么基于异步加载框架实现动图的逐帧加载呢?...根据线上统计数据, 对于优化前是否解码, 以及优化后的逐帧解码三个方案, 首帧加载平均数据如下:
相比于预先全部解码, 逐帧解码的首帧耗时降低了一半; 在灰度期间, 动图首帧加载平均耗时都在 25ms...做成图片通用加载方案
考虑到很多场景是静态图和动图混用的, 在下载完成之前, 程序并不知道 url 是不是动图, QMAnimatedImageView 做了下载后检查文件类型和帧数的逻辑, 根据图片的实际类型来开启逐帧加载