Class FlutterEngineGroup
- java.lang.Object
-
- io.flutter.embedding.engine.FlutterEngineGroup
-
public class FlutterEngineGroup extends Object
Represents a collection ofFlutterEngine
s who share resources to allow them to be created faster and with less memory than calling theFlutterEngine
's constructor multiple times.When creating or recreating the first
FlutterEngine
in the FlutterEngineGroup, the behavior is the same as creating aFlutterEngine
via its constructor. When subsequentFlutterEngine
s are created, resources from an existing livingFlutterEngine
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 moreFlutterEngine
s in that group.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlutterEngineGroup.Options
Options that control how a FlutterEngine should be created.
-
Constructor Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FlutterEngine
createAndRunDefaultEngine(Context context)
Creates aFlutterEngine
in this group and run itsDartExecutor
with a default entrypoint of the "main" function in the "lib/main.dart" file.FlutterEngine
createAndRunEngine(Context context, DartExecutor.DartEntrypoint dartEntrypoint)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
.FlutterEngine
createAndRunEngine(Context context, DartExecutor.DartEntrypoint dartEntrypoint, String initialRoute)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
and the specifiedinitialRoute
.FlutterEngine
createAndRunEngine(FlutterEngineGroup.Options options)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
, the specifiedinitialRoute
and thedartEntrypointArgs
.
-
-
-
Constructor Detail
-
FlutterEngineGroup
public FlutterEngineGroup(@NonNull Context context)
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
public FlutterEngineGroup(@NonNull Context context, @Nullable String[] dartVmArgs)
Create a FlutterEngineGroup whose child engines will share resources. UsedartVmArgs
to 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 Detail
-
createAndRunDefaultEngine
public FlutterEngine createAndRunDefaultEngine(@NonNull Context context)
Creates aFlutterEngine
in this group and run itsDartExecutor
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 firstFlutterEngine
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.
-
createAndRunEngine
public FlutterEngine createAndRunEngine(@NonNull Context context, @Nullable DartExecutor.DartEntrypoint dartEntrypoint)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
.If no prior
FlutterEngine
were created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEngine
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.
-
createAndRunEngine
public FlutterEngine createAndRunEngine(@NonNull Context context, @Nullable DartExecutor.DartEntrypoint dartEntrypoint, @Nullable String initialRoute)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
and the specifiedinitialRoute
.If no prior
FlutterEngine
were created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEngine
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.
-
createAndRunEngine
public FlutterEngine createAndRunEngine(@NonNull FlutterEngineGroup.Options options)
Creates aFlutterEngine
in this group and run itsDartExecutor
with the specifiedDartExecutor.DartEntrypoint
, the specifiedinitialRoute
and thedartEntrypointArgs
.If no prior
FlutterEngine
were created in this group, the initialization cost will be slightly higher than subsequent engines. The very firstFlutterEngine
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.
-
-