淘宝 Android 端图片体验优化实践

发表于 2年以前  | 总阅读数:1585 次

Android 端图像加载、显示、处理、监控集一体的一站式解决方案。

背景

Phenix 图像加载体系是立足手淘面向阿里巴巴全集团打造的一款 Android 端集图像加载、显示、处理、监控于一体的一站式解决方案。基于高可用、高性能、可高度定制、数据服务、省流量五大核心优势而被集团各个业务接入使用,经过长期的迭代与维护进入了相对成熟和稳定的模式。

在如今更加追求体验的背景下,对图片库提出的要求也越来越高。而图片加载长尾问题,特别是在中低端机和弱网条件下体现的更加明显。因此我们以手淘为出发点,基于用户舆情反馈以及图片库自身埋点数据,对影响图片正常展示的长尾问题进行了较为完整的梳理。

据统计,淘宝 Android 端每月图片类舆情在几百条,基本都表现出白屏、图片加载失败的现象。其中明确图片加载慢的 case 下,基本有以下几个因素:

  1. 用户网络慢,图片下载耗时久
  2. 磁盘缓存读取耗时,存在读取阻塞未返回的情况
  3. 图片尺寸大,原图访问 RT 耗时久

问题发现

结合舆情日志,通过图片库埋点数据统计发现:

  1. 图片加载磁盘读取慢(超过 N 秒) 次数每日百万次以上
  2. 图片库内部线程调度慢 (超过 N 秒) 次数每日千万次以上
  3. 图片网络错误类中,超时和连接错误每日次数亿次以上
  4. 首页信息流图片秒开率低,主要受制于原图访问问题

深入剖析场景根因

磁盘读取阻塞

磁盘缓存读取作为图片加载流程中非常关键的一个环节,发生阻塞时后续联网下载图片资源、图片解码、图片上屏等流程会被动等待,在用户视角即为图片未加载或页面白屏。

线程调度频繁

图片库将图片的请求分割到多个阶段 1. 内存缓存查找;2. 本地图片处理;3. 磁盘缓存查找;4. 网络请求;5. 图片解码;6. 图片回调上屏。

每个阶段都会进行线程切换,这些任务都共享一个大的线程池,频繁的线程切换会增加性能损耗。

网络任务队列阻塞

图片库内部针对网络任务(包括网络连接和网络数据下载)制定了特殊的调度器,该调度器限制了在强弱网环境下允许被传递到线程池中的最大任务数。

而弱网条件下图片数据返回慢,后续图片请求任务被阻塞在网络调度器的内置队列中,而不会进入线程池等待被执行,图片加载流程会因为排队而阻塞在队列中,上屏时间被延后,影响用户体验。

网络下载等待

图片网络数据下载受限于网络速度,弱网条件下数据返回慢。在图片库共享线程池时,网络下载任务占用着线程不释放,会造成两个比较明显的问题:

  1. 当前图片加载流程被阻塞
  2. 线程池中线程被占用,后续图片请求需要排队等待

图片尺寸大&原图访问

选取 JPG/PNG/WEBP/HEIC 几种图片在最近一个月的整体加载时长,从图中我们可以看出与其他图片格式相比,HEIC格式图片的整体耗时是最短的。这对于用户体验,特别是在中低端机上的体验是有明显的差距的。

非 HEIC 图片在 CDN 命中率低,绝大多数情况下会访问原图。同时图片尺寸大,再加上图片库内部的调度策略受网络资源下载时长的影响,会加剧单张图片加载总耗时。

此外,Android 12 引入了对使用 AV1 图片文件格式 (AVIF) 图片的支持,这种格式可以显著提升相同文件大小下的图片质量,而图片库目前还不支持。

分场景优化

基于以上提出的几类比较明显的限制根因,我们为图片上屏的场景分别制定了优化方案,并通过解决图片加载长尾问题来提升用户体验。

统一存储空窗优化

针对磁盘缓存读取阻塞问题,图片库增加存储读取异常检测与异常状态恢复检测方案。

  1. 磁盘读取耗时检测:

预设定磁盘读取阻塞的条件(可以通过云端配置平台动态调整)

在连续多次检测到磁盘缓存读取任务被阻塞时主动跳过二级缓存,后续图片请求全部走网络请求 2. 磁盘缓存读取跳过状态恢复检测:

预设定恢复二级缓存读取的条件(可以通过云端配置平台动态调整)

在跳过磁盘读取一段时间后,同时发起多个磁盘缓存读取任务,并且在规定时间内正常返回时恢复二级缓存读取,后续的图片加载流程与初始策略一致

线程调度方案改造

  • 优化点1: 减少线程切换

重新梳理各任务之间的关联情况以及各任务在执行时的耗时瓶颈点,最大可能的降低线程切换的频率。

  1. 仅保留两次线程调度

主线程切换至工作线程

网络库线程切换至图片库线程

  • 优化点2: 去掉网络调度内部阻塞

网络调度器的存在主要是为了限制在强弱网环境下允许被传递到线程池中的最大任务数,避免出现网络任务占满线程池,而后续可以从缓存中获取的图片也无法上屏显示的情况。 基于 优化点3 中网络数据下载变更为分片回调,不再占用图片库线程。此时图片库内部的网络调度器就不再被使用,该问题也会被规避。

以一种空间换时间的方式,解决弱网条件下网络数据返回慢所导致的线程占用问题。

  1. 网络库首次回调创建指定大小的容器,之后分段接受图片数据,直到所有数据全部返回后切换到图片库线程执行后续任务
  2. 弱网条件下返回数据慢也不影响图片库中线程的使用,通过提高线程使用率,降低等待时间来缩短图片加载时长

尺寸更小的图片格式

Android 12 引入了对使用 AV1 图片文件格式 (AVIF) 图片的支持。AVIF 是一种使用 AV1 编码的图片和图片序列的容器格式。利用了视频压缩的帧内编码内容。与以前的图片格式(例如 JPEG)相比,这种格式可显著提升相同文件大小下的图片质量。

采用新一代 AV1 图片格式,图片的压缩率相比 HEIC 能提高约 25%,能够在降低图片尺寸的同时缩短图片下载时长,提升用户体验。

通过与图片空间合作,在图片库内部增加了 AVIF 图片格式的支持和适配。目前已经历了 3 次完整的独立灰度,后期会先在手淘中落地并逐渐放量。

总结

磁盘缓存阻塞问题逐步放量至全量上线后优化效果明显,每周舆情数相比优化初期降低超过50%,磁盘读取耗时超过 N 秒样本数降低90%;

线程调度优化方案已经独立灰度完成,从灰度数据看线程调度慢 (超过 N 秒) 占比小于 0.01%;预计上线后与优化前相比每日能减少 90% 的样本数;

AVIF 图片格式独立灰度后图片尺寸与HEIC相比优化 15%,解码耗时基本保持一致,由于目前CDN 命中率较低,RT 耗时较长,需要等放量以后整体优化效果才能体现。同时后续压缩率与HEIC 相比预期达到 25%,会根据实际的埋点数据来决定后期的放量节奏。

我们还能做什么?

图片格式收敛至HEIC(后续可统一升级到AVIF)

目前 Native 页面中 HEIC 图片占比约 60%,而 H5 页面中只有部分资源适配了 HEIC。

  1. 在 Native 页面,使用图片库提供的组件或者调用图片库提供的 CDN 适配策略时,图片库会对传入的 URL 做处理,按照图片空间的规则拼接上 HEIC 后缀,这样当 URL 到达 CDN 时,如果有HEIC 图片缓存直接返回,如果没有会请求图片空间的服务将原始图片转码成 HEIC 图片
  2. H5 页面中由于 UC 内核提供了外接三方解码器的能力,同时手淘支持远程 SO 的下载,在这两个前提下 H5 页面的图片使用图片库提供的 CDN 策略,以及图片库提供的外置解码器来加载 HEIC 图片

针对 Native 页面可以推动业务方使用图片库提供的组件,或者主动调用图片库提供的 CDN 策略来接入对 HEIC 图片的支持。

针对 H5 页面正在和业务方做沟通以及制定更加完善的替换方案,争取早日完成图片格式的收敛。

写在最后

对于图片上屏体验而言,Phenix 图片库任重而道远。在一轮又一轮的技术迭代下,手淘的图片上屏体验在不断的优化和提升。希望在未来,图片库在优化自身的同时能够结合网络库、图片空间等模块进一步挖掘隐藏在各个环节的性能瓶颈,帮助提升用户体验。

本文由哈喽比特于2年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/IZYywEeOwxKewGkpuWuZXA

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:7月以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:7月以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:7月以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:7月以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:7月以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:7月以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:7月以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:7月以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:7月以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:7月以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:7月以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:7月以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:7月以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:7月以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:7月以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:7月以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:7月以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:7月以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:7月以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:7月以前  |  398次阅读  |  详细内容 »
 相关文章
简化Android的UI开发 4年以前  |  520719次阅读
Android 深色模式适配原理分析 3年以前  |  28663次阅读
Android阴影实现的几种方案 1年以前  |  10821次阅读
Android 样式系统 | 主题背景覆盖 3年以前  |  9611次阅读
 目录