public class FlutterEngineGroup extends Object
Represents a collection of FlutterEngine
s who share
resources to allow them to be created faster and with less memory than calling the FlutterEngine
's constructor multiple times.
When creating or recreating the first FlutterEngine
in the
FlutterEngineGroup, the behavior is the same as creating a FlutterEngine
via its constructor. When subsequent FlutterEngine
s are created, resources from an existing living FlutterEngine
is re-used.
The shared resources are kept until the last surviving FlutterEngine
is destroyed.
Deleting a FlutterEngineGroup doesn't invalidate its existing FlutterEngine
s, but it eliminates the possibility to create more
FlutterEngine
s in that group.
Constructor and Description |
---|
FlutterEngineGroup(Context context)
Create a FlutterEngineGroup whose child engines will share resources.
|
FlutterEngineGroup(Context context,
String[] dartVmArgs)
Create a FlutterEngineGroup whose child engines will share resources.
|
Modifier and Type | Method and Description |
---|---|
FlutterEngine |
createAndRunDefaultEngine(Context context)
Creates a
FlutterEngine in this group and run its DartExecutor with a default entrypoint of the "main" function
in the "lib/main.dart" file. |
FlutterEngine |
createAndRunEngine(Context context,
DartExecutor.DartEntrypoint dartEntrypoint)
Creates a
FlutterEngine in this group and run its DartExecutor with the specified DartExecutor.DartEntrypoint . |
public FlutterEngineGroup(@NonNull Context context)
public FlutterEngine createAndRunDefaultEngine(@NonNull Context context)
FlutterEngine
in this group and run its DartExecutor
with a default entrypoint of the "main" function
in the "lib/main.dart" file.
If no prior FlutterEngine
were created in this group,
the initialization cost will be slightly higher than subsequent engines. The very first FlutterEngine
created per program, regardless of
FlutterEngineGroup, also incurs the Dart VM creation time.
Subsequent engine creations will share resources with existing engines. However, if all
existing engines were FlutterEngine.destroy()
ed, the next
engine created will recreate its dependencies.
public FlutterEngine createAndRunEngine(@NonNull Context context, @Nullable DartExecutor.DartEntrypoint dartEntrypoint)
FlutterEngine
in this group and run its DartExecutor
with the specified DartExecutor.DartEntrypoint
.
If no prior FlutterEngine
were created in this group,
the initialization cost will be slightly higher than subsequent engines. The very first FlutterEngine
created per program, regardless of
FlutterEngineGroup, also incurs the Dart VM creation time.
Subsequent engine creations will share resources with existing engines. However, if all
existing engines were FlutterEngine.destroy()
ed, the next
engine created will recreate its dependencies.