1. Isolate 是 Dart 的并行模型,每个 Isolate 有独立的内存、GC、事件循环。
2. Dart VM 负责创建和管理 Isolate,并为其提供执行环境。
3. Flutter Engine 内嵌 Dart VM,并负责创建 UI Isolate,让 Dart 代码能驱动 Flutter 渲染。
4. 每个 Isolate 通常绑定到一个原生线程,因此不同 Isolate 可以并行执行。
5. UI Isolate 运行在 iOS 主线程;后台 Isolate 运行在 Dart VM 创建的工作线程。
5. 一个 Flutter 程序到底有几个 Engine?
默认情况:一个 Flutter App → 一个 Engine
但你可以创建多个 Engine,例如:
- 多个 FlutterViewController(iOS)
- Flutter 多引擎架构(如多窗口、多页game场景)
- 内嵌多个 Flutter 模块
每个 Engine 都:
- 有自己的 UI Isolate
- 有自己的渲染管线
- 共享 同一个 Dart VM
➡ 多 Engine = 多 UI Isolate
➡ 但通常 仍只会有 1 个 Dart VM
🧩 6. 一个 Flutter 程序有几个 Dart VM?
在一个进程内:永远只有 一个 Dart VM
除非你:
- 把 Flutter 嵌到多个进程
- 或者在 Android 多进程模式运行多个 Activity
否则 Dart VM 通常是全局唯一的。