抖音 Android 端veimagex图片优化实践

彩蛋:veImageX体验版

web体验版

 

给自己项目图片压缩下。比市面上的压缩好用很多

抖音图片优化背景

抖音平台随着图文、电商、即时通讯等业务的扩展,图片加载量大幅增加,导致图片带宽成本增加,用户浏览体验亟需提升。因此,抖音持续优化图片能力,通过提高加载速度、降低成本,实现图片展示的“好快省”。

BDFresco简介

BDFresco是火山引擎veImageX团队基于开源Fresco优化的Android图片框架,覆盖字节几乎所有App,提供图片网络加载、解码、基础处理与变换、质量监控、自研HEIF解码、缓存策略等能力。

优化思路

图片加载过程涉及内存、解码、磁盘和网络四大核心阶段。抖音通过优化这些阶段,提高图片加载效率并降低成本。

1. 内存缓存优化

1.1 内存查找优化

通过剔除不必要的内存缓存查找,减少UI线程负担,提升大盘帧率。

1.2 动静图缓存拆分

将动图和静图缓存分开,避免互相替换,提升缓存命中率,减少解码操作,优化OOM和ANR问题。

2. 图片解码优化

2.1 解码格式优化

根据设备性能和图片透明度需求,灵活使用ARGB_8888和RGB_565格式解码,减少内存占用。

2.2 HEIF解码内存优化

通过减少Java层大数组创建,降低内存占用和GC频率,优化解码性能,提升流畅度和ANR指标。

3. 磁盘缓存优化

通过增大存储空间和推广独立磁盘缓存,提高磁盘缓存命中率,减少图片请求量,降低带宽成本。

4. 网络加载优化

4.1 图片格式优化

推广使用heic格式,大幅减少带宽成本和加载时间。优化动图独立缓存,避免帧率下降问题。

4.2 按需缩放

根据控件大小调整图片尺寸,减少带宽浪费和内存占用,提高CDN缓存命中率。

5. 异常恢复

在系统内存告警时,释放图片内存缓解压力。通过OOM兜底逻辑,主动catch异常,清理大图内存,减少崩溃几率。

最下面的彩蛋

为进一步提升图片加载效率和用户体验,抖音将继续在以下几个方面进行探索:

  1. 智能图片压缩:通过机器学习算法,根据图片内容和用户设备自适应调整压缩比,实现质量与速度的最佳平衡。

  2. 预加载机制:根据用户浏览习惯和网络状况,智能预加载图片,减少等待时间,提高体验。

  3. 多级缓存协同:在内存、磁盘、CDN等多级缓存之间优化协同机制,提高整体缓存命中率,进一步降低带宽成本。

安卓接入SDK,

接入准备(必看)--veImageX-火山引擎

参考:

抖音 Android 端图片优化实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值