Class FlutterEngineGroup
FlutterEngines 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 FlutterEngines 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 FlutterEngines, but it eliminates the possibility to create more
FlutterEngines in that group.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classOptions that control how a FlutterEngine should be created. -
Constructor Summary
ConstructorsConstructorDescriptionFlutterEngineGroup(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. -
Method Summary
Modifier and TypeMethodDescriptioncreateAndRunDefaultEngine(Context context) Creates aFlutterEnginein this group and run itsDartExecutorwith a default entrypoint of the "main" function in the "lib/main.dart" file.createAndRunEngine(Context context, DartExecutor.DartEntrypoint dartEntrypoint) Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypoint.createAndRunEngine(Context context, DartExecutor.DartEntrypoint dartEntrypoint, String initialRoute) Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypointand the specifiedinitialRoute.Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypoint, the specifiedinitialRouteand thedartEntrypointArgs.
-
Constructor Details
-
FlutterEngineGroup
Create a FlutterEngineGroup whose child engines will share resources.Since the FlutterEngineGroup is likely to have a longer lifecycle than any individual Android component, it's more semantically correct to pass in an application context rather than the individual Android component's context to minimize the chances of leaks.
-
FlutterEngineGroup
Create a FlutterEngineGroup whose child engines will share resources. UsedartVmArgsto pass flags to the Dart VM during initialization.Since the FlutterEngineGroup is likely to have a longer lifecycle than any individual Android component, it's more semantically correct to pass in an application context rather than the individual Android component's context to minimize the chances of leaks.
-
-
Method Details
-
createAndRunDefaultEngine
Creates aFlutterEnginein this group and run itsDartExecutorwith a default entrypoint of the "main" function in the "lib/main.dart" file.If no prior
FlutterEnginewere created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEnginecreated 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. -
createAndRunEngine
public FlutterEngine createAndRunEngine(@NonNull Context context, @Nullable DartExecutor.DartEntrypoint dartEntrypoint) Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypoint.If no prior
FlutterEnginewere created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEnginecreated 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. -
createAndRunEngine
public FlutterEngine createAndRunEngine(@NonNull Context context, @Nullable DartExecutor.DartEntrypoint dartEntrypoint, @Nullable String initialRoute) Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypointand the specifiedinitialRoute.If no prior
FlutterEnginewere created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEnginecreated 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. -
createAndRunEngine
Creates aFlutterEnginein this group and run itsDartExecutorwith the specifiedDartExecutor.DartEntrypoint, the specifiedinitialRouteand thedartEntrypointArgs.If no prior
FlutterEnginewere created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEnginecreated 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.
-