Starting the Dart VM

The Dart runtime is responsible for managing Dart memory and
concurrency for your Dart code. In JIT mode,
it’s additionally responsible for compiling
the Dart source code into machine code during runtime.

A single Dart runtime exists per application session on
Android and iOS.

A one-time Dart VM start is done when constructing the
FlutterEngine for the first time on
Android and when running a Dart entrypoint
for the first time on iOS.

At this point, your Dart code’s snapshot
is also loaded into memory from your application’s files.

This is a generic process that also occurs if you used the
Dart SDK directly, without the Flutter engine.

The Dart VM never shuts down after it’s started.

Creating and running a Dart Isolate

After the Dart runtime is initialized,
the Flutter engine’s usage of the Dart
runtime is the next step.