自从直播和小视频兴起之后,礼物和打赏成为主播和平台盈利的有效手段。在各种特效中,SVGA(SVGA 是一种同时兼容 iOS / Android / Flutter / Web 多个平台的动画格式)动画基本上是现在各个平台选择的主流手段.

我之前的直播项目的礼物特效,都是采用官方SVGAPlayer加载SVGA资源,因为之前的业务相对简单,礼物资源也不庞大,更换工作之后发现新项目直播业务复杂,大量使用特效和全屏动画,在部分性能不好的机型上出现卡顿等情况。进过分析发现多个用户同时发送多个礼物,另外发送表情特效,多个SVGAPlayer同时工作,内存会飙升,另外某些SVGA资源十分庞大,也会出现内存飙升的情况。

先后采取了队列播放SVGA资源,SVGAPlayer复用,SVGA资源瘦身等措施都无法彻底解决问题,调研发现采用web加载SVGA资源可以优化内存消耗,但是要注意界面的适配问题。

加载SVGA资源前的内存使用情况:

使用SVGAPlayer加载资源的内存使用情况:

使用WKWebView加载资源的内存使用情况:

可见,使用WKWebView加载SVGA资源的内存增加不大,而使用SVGAPlayer加载SVGA资源的内存增加很明显。

android svga内存,iOS-SVGA动画渲染之内存优化相关推荐

  1. Android动画渲染过程及原理(matrix),matrix动画,动画优化

    -- 矩阵(Matrix), Matrix动画 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵.在物理学中,矩阵于电路学.力学.光学和量子物理中都 ...

  2. iOS之深入探究动画渲染降帧

    一.为什么要对动画降帧? 众所周知,刷新频率越高体验越好,对于 iOS app 的刷新频率应该是越接近越 60fps 越好,主动给动画降帧,肯定会影响动画的体验.但是另一方面,我们也知道动画渲染的过程 ...

  3. iOS 视图,动画渲染机制探究

    腾讯Bugly特约作者:陈向文 终端的开发,首当其冲的就是视图.动画的渲染,切换等等.用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅.UI就是 App 的门面,它的体验 ...

  4. ae制h5文字动画_大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...

  5. android 2048 动画,大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...

  6. Android Studio 选项菜单和动画结合_Android性能测试③-发现和定位内存泄露amp;卡顿...

    Android性能测试③-发现和定位内存泄露&卡顿 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了--应用耗电大: 2)首次/非首次启动应用,进入应用特别慢-- ...

  7. android菊花动画,Android实现仿iOS菊花加载圈动画效果

    常见的实现方式 切图,做旋转动画 自定义View,绘制效果 gif图 1.切图会增加体积,但相对简单,不过在换肤的场景下,会使用不同颜色,需要准备多张图,不够灵活. 2.由于自定义的好处,不同颜色只需 ...

  8. Android Studio 选项菜单和动画结合_Android 应用与iOS 应用之间的设计差异对比!

    同一个App,为什么iOS 和Android 的交互操作有那么大的区别?本文将用大量原生设计案例,为你一一说明它们为什么应该这样做,赶紧学起来! 了解并适当结合平台规范与优势,才能做到最佳的用户体验. ...

  9. android卡为什么iOS不卡,同内存下苹果不卡,安卓却很卡,原因在这里

    原标题:同内存下苹果不卡,安卓却很卡,原因在这里 对手机稍有了解的人都知道iOS和Android的内存机制不同,两个系统一个是封闭式定位,另一个是开放的,虽说各有好处,但对设备的内存还是有很大影响,这 ...

最新文章

  1. 0x52. 动态规划 - 背包(习题详解 × 19)
  2. Symmetric Pairs(连接、分组,聚合)
  3. Django内置权限扩展案例
  4. 服务器通过响应头向浏览器设置cookie,http响应包括设置cookie jession id,但随后发送请求,请求标头中没有cookie信息...
  5. DataTable转换成List
  6. 文件的属性 计算机知识,计算机基础知识文件的属性(二)
  7. Java try-catch示例
  8. hbase1.2.4安装
  9. Springboot 5.Springboot 返回cookies信息的post接口开发
  10. java id3v2 乱码,Mp3标签乱码问题分析与解决方案
  11. [Java实验 5] 异常处理
  12. 1186: 零起点学算法93——改革春风吹满地(C)
  13. 关于Android针孔摄像头检测方法
  14. 用java web start来发布jbpm(三)
  15. Nginx之父被抓!员工“接私活儿”到底合不合法?
  16. JUC第六讲:ThreadLocal/InheritableThreadLocal详解/TTL-MDC日志上下文实践
  17. SCC会员北京车展围拍超跑 却火了这款华为MateRS保时捷版手机
  18. ACE: Ally Complementary Experts for Solving Long-Tailed Recognition in One-Shot(2022.5.27)
  19. LightOJ - Travel Company(Spfa)
  20. 博客园12月份第3周51Aspx源码发布详情

热门文章

  1. uni-app云开发基础保姆级教程
  2. 【智能制造】浅谈中国工业4.0的发展方向
  3. asp手机拍照显示_WeX5V3.1手机拍照例子-后台ASP.NET
  4. 《深度学习入门》(一)
  5. python 小说 小说_python潇湘书院网站小说爬虫
  6. 将复数python与实数运算_python怎么实现复数运算
  7. 为什么硬盘在macbook上无法编辑?mac不能往移动硬盘拷东西
  8. 3个5相乘列乘法算式_「百树云课堂」初一数学必考的知识点(21个)
  9. 链表中入口结点——《剑指offer》
  10. yolov3-tiny 训练。以及yolov3 画图。