Flutter 是由 Google 开发的一种跨平台的 UI SDK,可以进行移动端开发。

特点是:美观、快速、高效、开放。

Flutter 不同于 React Native 的是,它无需到原生上渲染,可直接利用 Skia 渲染引擎进行绘制渲染。

当图片连续播放的频率超过 16 帧,就会显得非常流畅。

当帧率和刷新率相等时,画面就能正常显示。

当帧率大于刷新率时,屏幕还没有刷新第 n-1 帧,GPU 已经生成第 n 帧了。当屏幕开始刷新第 n-1 帧时,Buffer 中的数据上半部分是第 n 帧的数据,而下半部分是第 n-1 帧的数据,即产生了 tearing(撕裂)。

为了解决单缓存的撕裂问题,可以使用双重缓存和 VSync,而双重缓存又会产生 Jank(空白) 问题,可以引入三重缓存来解决。

Skia 是由 C++ 编写的开源图形库,能在低端设备上呈现高质量的 2D 图形,最初由 Skia 公司开发,目前已被 Google 收购。

Skia 是 Android 官方的图形渲染引擎,所以 Flutter Android SDK 无需内嵌 Skia 引擎。

对于 iOS 来说,由于 Skia 是跨平台的,所以它被嵌入到了 Flutter iOS SDK 中,代替了 iOS 闭源的 Core Graphics、Core Animation、Core Text,这也是 Flutter iOS SDK 打包的 App 包体积比 Android 大一些的原因。

Dart 异步