AirBnb动画引擎Lottie通过采用核心动画提升性能

Airbnb 发布 Lottie 4.0 开源动画引擎

Airbnb 宣布了其开源矢量动画引擎 Lottie 的第四个大版本更新——Lottie 4.0。该版本通过采用 Core Animation 技术,显著提升了性能并降低了 CPU 负载。

Lottie 简介

Lottie 是一个用于 iOS 和 Android 的库,能够实时渲染 After Effects 动画。动画通过 JSON 文件描述,这些文件可以使用 Bodymovin 插件从 After Effects 中导出。Lottie 会解码 JSON 并访问所有所需资源,以渲染动画,就像处理应用程序中的静态资源一样。

Lottie 4.0 的改进

在 Lottie 4.0 中,Airbnb 放弃了之前在主 CPU 线程上使用 CADisplayLink 进行图形动画的方法。这种方法每帧都会在主线程上执行代码以推进动画进度并重新渲染内容,导致动画播放时消耗 5-20% 以上的 CPU,减少了应用程序其他部分的 CPU 周期。

Core Animation 的优势

切换到 Core Animation 后,动画被卸载到 GPU 上进行处理,带来了三大好处:

  1. 利用硬件加速。
  2. 降低 CPU 负载。
  3. 在 CPU 繁忙时提高帧率。

实际应用效果

例如,Airbnb 应用在首次启动时显示一个 Lottie 动画。通过实验发现,切换到新的渲染引擎后,应用的总启动时间减少,同时启动动画的帧率和用户体验也得到了提升。

其他新特性

除了基于 Core Animation 的渲染引擎外,Lottie 4.0 还引入了一种新的文件格式,使用压缩技术将一个或多个 Lottie JSON 文件及其相关资源聚合到一个文件中。此外,JSON 解码管道被重写,速度提升了约 2 倍。

安装方式

Lottie 最初是用 Objective-C 编写的,两年前完全用 Swift 重写,导致了版本 3 的发布。用户可以从其 GitHub 仓库安装,或使用 CocoaPods、Carthage 或 Swift Package Manager 等包管理器进行安装。

阅读 54
0 条评论