从原生到黑科技:闲鱼Flutter图片优化经历了什么?
admin
2021-02-02 12:54:19
0

从原生到黑科技:闲鱼Flutter图片优化经历了什么?

图片加载是 APP 最常见也最基本的功能,也是影响用户体验的因素之一。在看似简单的图片加载背后却隐藏着很多技术难题。本文介绍闲鱼技术团队在 Flutter 图片优化上所做的尝试,分享闲鱼在典型的图片处理方案上的技术细节,希望给大家带来一些启发。

那些年

早在闲鱼使用 Flutter 之初,图片就是我们核心关注和重点优化的功能。图片展示体验的好坏会对闲鱼用户的使用体验产生巨大影响。你们是否也曾遇到过:图片加载内存占用过多?使用 Flutter 以后本地资源重复,利用率不高?混合方案下 Flutter 原生图片加载效率不高?

针对上述问题,从第一版 Flutter 业务上线开始,闲鱼对图片框架的优化就从未停止。从开始的原生优化,到后面黑科技的外接纹理;从内存占用,到包大小;文本会逐一介绍。希望其中的优化思路和手段,能给大家带去一些启发。

原生模式

从技术层面看图片加载,其实简单来说,追求的是无非是加载的效率的最大化——用尽可能小的资源成本,尽可能快地加载尽可能多的图片。

闲鱼图片的第一个版本其实基本上是纯原生的方案。如果你不想魔改很多底层的逻辑,原生方案肯定是最简单和经济的方案。原生方案的功能模块如下:

从原生到黑科技:闲鱼Flutter图片优化经历了什么?

如果你啥都没做直接上了,那么你可能会发现效果并没有达到你预期的那么美好。那么如果从原生的方案入手,我们有哪些具体的优化手段呢?

设置图片缓存

没错猜对了,是缓存。对于图片加载,最能想到的方案就是使用缓存。首先原生 Image 的组件是支持自定义图片缓存的,具体的实现类是 ImageCache。ImageCache 的设置维度是两个方向:缓存图片的张数。通过 maximumSize 设置。默认是 1000 张。缓存空间的大小。通过 maximumSizeBytes 来设置。默认值 100M。相比张数的限制,其实大小的设置方式更加符合我们的最终的预期。

相关内容

热门资讯

高中军训心得体会 高中军训心得体会范文(精选41篇)  军训期间开展的一系列活动,使我们加强了集体荣誉感和组织凝聚力,...
师德培训心得 师德培训心得 篇一从等待招聘结果的焦虑不安到开启人生第一次师德培训的激动与幸福,一切恍然如梦。直到会...
中国梦心得体会 中国梦心得体会(精选8篇)  某些事情让我们心里有了一些心得后,将其记录在心得体会里,让自己铭记于心...
三年工作心得 三年工作心得三年工作心得1  转眼工作三年,前两年是风平浪静,谁知道确实波涛暗涌,该来的不该来的今年...
读《小学数学新课程标准教学法... 读《小学数学新课程标准教学法》心得体会读《小学数学新课程标准教学法》心得体会 武又琴 一.面对新...
个人观看警示教育片心得体会 个人观看警示教育片心得体会  我们得到了一些心得体会以后,心得体会是很好的记录方式,这样就可以通过不...
参加管理培训后的心得体会 参加管理培训后的心得体会(精选25篇)  当我们经过反思,有了新的启发时,有这样的时机,要好好记录下...
小学教师暑期培训心得体会篇 小学教师暑期培训心得体会范文精选篇  作为一个教师,我们要爱自己的职业--教育事业,要对教学工作有“...
“做快乐幸福的班主任”心得体... “做快乐幸福的班主任”心得体会  我们在一些事情上受到启发后,心得体会是很好的记录方式,这样我们可以...
团队意识个人心得体会 团队意识个人心得体会  当我们心中积累了不少感想和见解时,可以通过写心得体会的方式将其记录下来,这样...