写点什么

AirBnb 开源动画引擎 Lottie:采用 Core Animation 提高性能

  • 2022-12-29
    北京
  • 本文字数:941 字

    阅读完需:约 3 分钟

AirBnb开源动画引擎Lottie:采用Core Animation提高性能

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

AirBnb宣布了其开源矢量动画引擎 Lottie 的第四次主要迭代。AirBnb iOS 工程师 Cal Stephens 表示,由于采用了核心动画(Core Animation),Lottie 4.0 提供了显著的性能改进,并降低了 CPU 负载。

 

Lottie 是一个用于 iOS 和 Android 的库,可以实时渲染 After Effects 动画。Lottie 中的动画是通过 JSON 文件描述的,可以使用Bodymovin插件从 After Effects 中导出。Lottie 将对 JSON 进行解码,并访问渲染动画所需的所有资源,就像它只是应用程序中的另一个静态资源一样。

 

在 Lottie 4.0 中,AirBnb 放弃了使用CADisplayLink在主 CPU 线程上制作图形动画的原始方法:

 

每帧一次,Lottie 将在主线程上执行代码,以推进动画的进度并重新渲染其内容。这意味着动画在播放时将消耗 5–20%以上的 CPU,从而减少了用于应用程序其余部分的可用 CPU 周期。

 

根据 Stephens 的说法,这使得 Lottie 在更复杂的情况下无法维持所需的帧速并且开始丢弃帧会变得相对常见。此外,当主线程忙于一些昂贵的任务时,动画可能会出现一些抖动。

 

切换到核心动画(Core Animation)意味着动画被卸载到 GPU 上,这有三个好处:利用硬件加速,减少 CPU 负载,并在 CPU 繁忙时提高帧速。

 

例如,Airbnb 应用程序在首次启动时显示 Lottie 动画。我们在这里进行了一项实验,发现切换到新的渲染引擎可以缩短应用程序的总启动时间,同时还可以提高启动动画的帧速和用户体验。

 

除了新的基于核心动画(Core Animation)的渲染引擎外,Lottie 4.0 还带来了一种新的文件格式,它使用压缩将一个或多个 Lottie JSON 文件及其相关资源聚合到一个文件中。JSON 解码管道已被重写,速度提高了约 2 倍。

 

Lottie 最初是用 Objective-C 编写的,两年前在 Swift 中被完全重写,最终发布了第 3 版。你可以从GitHub repo或使用包管理器(如 CocoaPods、Carthage 或 Swift 包管理器)安装它。

 

作者简介:

Sergio De Simone 是一名软件工程师。Sergio 已经在一系列不同的项目和公司担任软件工程师超过 15 年,其中包括西门子、惠普和小型创业公司等不同的工作环境。在过去的几年里,他一直专注于移动平台和相关技术的开发。他目前就职于 BigML,Inc.,负责 iOS 和 OS X 的开发。

 

原文链接:

https://www.infoq.com/news/2022/12/airbnb-lottie-4/


相关阅读:

React 源码解读之 React Fiber

虚拟角色赛道的新“闯入者”:3D 引擎 Cocos 和它的新故事

2022-12-29 08:008207

评论

发布
暂无评论
发现更多内容

Illustrator 2023 for mac(Ai2023矢量设计应用程序)v27.9.0中文激活版

影影绰绰一往直前

硬核解读KubeEdge基于大模型边云协同的机器人语义分割算法

华为云开发者联盟

开源 华为云 大模型 华为云开发者联盟 企业号2024年6月PK榜

Visio Viewer for Mac(Visio文件查看工具)v3.1.0激活版

影影绰绰一往直前

Dapp系统开发:从需求定制到源码交付的一站式解决方案

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

数智融通 创新发展|亚信科技携AntDB、Data OS与隐私计算产品,赋能企业高质量发展

亚信AntDB数据库

数据库 AntDB 国产数据库 企业号 6 月 PK 榜

ZBrush 2021 for Mac(三维数字雕刻软件) v2021.7.1中文版

Mac相关知识分享

Mac软件 雕刻软件 三维雕刻软件

iPaaS中API接口管理平台的作用

RestCloud

API API接口 ipaas

ETL驱动企业集成转型与数据集成创新

RestCloud

ETL 数据集成 ETLCloud

“翼”鸣惊人 天翼云两篇论文被ACM ICPP 2024收录

Geek_2d6073

拼多多API:轻松掌握商品详情的艺术

Noah

NumPy的深浅拷贝的区别与选择

我再BUG界嘎嘎乱杀

Python Numpy 深浅拷贝

人工智能 | 大模型之提示词工程:零样本提示

测吧(北京)科技有限公司

测试

一文了解Spark引擎的优势及应用场景

不在线第一只蜗牛

大数据 spark 分布式

服务网格自动故障检测及流量切换方案

天翼云开发者社区

云计算 微服务 云原生 容器技术 服务网格

数字藏品NFT链游开发:快速上线定制开发的最佳选择

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

多链代币开发:打造跨链互操作性的新纪元

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

TON链代币开发:探索区块链的新前沿

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

上周面了百度,问的很细~

王磊

Java 面试

淘宝/天猫商品详情API接口在电商智能决策支持系统中的作用与实现

技术冰糖葫芦

api 网关 API Explorer API 文档 pinduoduo API

“专业敏捷教练课程” 8月31-9月1日 · CSP-SM认证周末班【晋升高阶享多重福利】

ShineScrum捷行

MATLAB R2023a for Mac(商业数学软件)v9.14.0 (2337262)激活版

影影绰绰一往直前

Airtest脚本的重构与优化:提升测试效率和可读性

我再BUG界嘎嘎乱杀

Python 性能优化 测试 自动化测试 Airtest

全面升级,票据识别新纪元:合合信息TextIn多票识别2.0

合合技术团队

人工智能 OCR 发票识别

StarRocks x 腾讯视频:指标中台驱动湖仓一体建设实践

StarRocks

数据库 大数据 数据湖 湖仓一体 指标平台

Go Modules:Go语言依赖管理的新篇章

左诗右码

元宇宙链游APP开发专属平台:开启虚拟世界新纪元

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

AirBnb开源动画引擎Lottie:采用Core Animation提高性能_语言 & 开发_Sergio De Simone_InfoQ精选文章