这是一个非常清晰且关键的问题。要理解这三者的区别,我们需要把它们放在图形渲染栈的不同层级来看。
简单来说:
我们可以用“建筑师 - 施工队 - 工人”的类比来理解:
这是目前 Flutter 开发者最关心的话题。两者都是渲染引擎,都运行在 Vulkan/Metal 之上。
Vulkan 不是 Skia 或 Impeller 的竞争对手,而是它们的运行基础。
关系图解:
用户代码 (Flutter/Dart) ↓ [ 渲染引擎层 ] <-- 这里是 Skia 和 Impeller 竞争的地方 (Skia 或 Impeller) ↓ [ 图形 API 层 ] <-- 这里是 Vulkan (或 Metal/OpenGL) 的地盘 (Vulkan / Metal / OpenGL ES) ↓ [ GPU 硬件 ]
既然有了强大的 Skia,为什么还要造 Impeller?
**核心原因:Skia 的“抖动” **(Jank)
**如果你是 Web 前端或 Android 原生 **(View 系统):
如果你是 Flutter 开发者:
如果你是图形引擎开发者:
一句话总结:Vulkan 是高性能的发动机技术;Skia 是一辆全能但偶尔会顿挫的老牌汽车;Impeller 是一辆为特定赛道(Flutter)。
Github开源生信云平台 DEMO