首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Airbnb针对iOS发布高性能渲染引擎Lottie 4.0

Airbnb开源了适用于iOS的渲染引擎Lottie 4.0,这个版本使用支持Core Animation的全新渲染引擎,对所有Lottie动画带来显著的性能改进。Lottie是Airbnb的跨平台函数库,可用于渲染矢量动作图像,不只Airbnb广泛地使用Lottie,Lottie现已被数千个应用程序用于渲染动画。

Airbnb提到,他们多年来大规模的使用Lottie,发现Lottie存在一些性能缺点,像是在处理更复杂的画面时,容易发生影格遗失的问题。而发生影格遗失的原因,跟Lottie渲染动画的方法有关,Lottie之前的版本在应用程序的主线程播放动画,每个影格调用一次CADisplayLink,刷新动画进度并重新渲染内容,播放动画大概会消耗5到20%的CPU资源,这会使用于应用程序其他部分的CPU周期被压缩。

也就是说,当主线程忙碌时,动画可能就无法更新,导致动画影格遗失或是停顿,产生糟糕的用户体验,官方解释,这是在主线程绑定渲染架构的限制。

而在iOS上,播放动画最高效也最省电的方式是使用Core Animation,以系统框架通过GPU硬件加速在程序外渲染动画,动画播放会由一个称为渲染服务器的单独系统程序管理,官方表示,以Core Animation驱动的动画,不会增加应用程序本身的CPU使用率,动画在主线程阻塞或是忙碌时仍可以继续播放。

在2022年Airbnb花了一些心力以Core Animation,替Lottie开发一个全新的渲染引擎实例,这个新引擎消除了Lottie动画的CPU开销,无论应用程序的CPU负载如何,都能保证Lottie动画以60或是120 FPS顺畅地渲染。

在新引擎渲染的动画,不会在应用程序的主线程上执行程序代码,因此应用程序现在可以将更多资源分配给其他功能,这在执行时具有高CPU负载的任务特别有价值,像是Airbnb应用程序首次启动时会显示Lottie动画,在切换使用新渲染引擎后,应用程序的总启动时间减少,同时还能提高启动动画的影帧速率和用户体验。

Airbnb在Lottie 3.4.0就已经开始加入Core Animation,但当时只作为可选功能,而Airbnb自家已经完全使用新引擎6个月,并且解决早期用户所回应的问题,现在从Lottie 4.0 for iOS开始,Core Animation渲染引擎将成为默认,Lottie应用程序开发人员不需要进行额外的移植工作,就可以立刻获得动画渲染性能提升。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221208A04YDD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券