什么是 Lottie
Lottie是 Airbnb 的跨平台开源库,用于渲染矢量运动图形。我们在 Airbnb 广泛使用 Lottie,它还为整个行业的数千个其他应用程序中的动画提供支持。
发布了适用于 iOS 的Lottie 4.0 。这个主要的新版本通过由 Core Animation 提供支持的全新渲染引擎,为所有 Lottie 动画带来了显着的性能改进。
多年来大规模使用 Lottie,我们已经了解了很多关于它在实际用例中的性能特征。我们发现 Lottie 动画在我们的一些更复杂的屏幕中丢帧是相对常见的。要了解其中的原因,我们首先得看看 Lottie 之前是如何渲染动画的。
Lottie 的早期版本在应用程序的主线程上播放动画,有效地使用了CADisplayLink。每帧一次,Lottie 将在主线程上执行代码以推进动画进度并重新渲染其内容。这意味着动画在播放时会消耗 5-20% 以上的 CPU,从而为应用程序的其余部分留出更少的 CPU 周期:
这也意味着当主线程繁忙时动画不会更新。这可能会导致动画掉帧或完全冻结,从而导致糟糕的用户体验:
这些问题是使用主线程绑定渲染架构的固有限制。
在 iOS 上,播放动画的最高效和最省电的方式是使用Core An