Class FlutterLoader

java.lang.Object
io.flutter.embedding.engine.loader.FlutterLoader

public class FlutterLoader extends Object
Finds Flutter resources in an application APK and also loads Flutter's native library.
  • Constructor Details

    • FlutterLoader

      public FlutterLoader()
      Creates a FlutterLoader that uses a default constructed FlutterJNI and ExecutorService.
    • FlutterLoader

      public FlutterLoader(@NonNull FlutterJNI flutterJNI)
      Creates a FlutterLoader that uses a default constructed ExecutorService.
      Parameters:
      flutterJNI - The FlutterJNI instance to use for loading the libflutter.so C++ library, setting up the font manager, and calling into C++ initialization.
    • FlutterLoader

      public FlutterLoader(@NonNull FlutterJNI flutterJNI, @NonNull ExecutorService executorService)
      Creates a FlutterLoader with the specified FlutterJNI.
      Parameters:
      flutterJNI - The FlutterJNI instance to use for loading the libflutter.so C++ library, setting up the font manager, and calling into C++ initialization.
      executorService - The ExecutorService to use when creating new threads.
  • Method Details

    • startInitialization

      public void startInitialization(@NonNull Context applicationContext)
      Starts initialization of the native system.
      Parameters:
      applicationContext - The Android application context.
    • startInitialization

      public void startInitialization(@NonNull Context applicationContext, @NonNull FlutterLoader.Settings settings)
      Starts initialization of the native system.

      This loads the Flutter engine's native library to enable subsequent JNI calls. This also starts locating and unpacking Dart resources packaged in the app's APK.

      Calling this method multiple times has no effect.

      Parameters:
      applicationContext - The Android application context.
      settings - Configuration settings.
    • ensureInitializationComplete

      public void ensureInitializationComplete(@NonNull Context applicationContext, @Nullable String[] args)
      Blocks until initialization of the native system has completed.

      Calling this method multiple times has no effect.

      Parameters:
      applicationContext - The Android application context.
      args - Flags sent to the Flutter runtime.
    • ensureInitializationCompleteAsync

      public void ensureInitializationCompleteAsync(@NonNull Context applicationContext, @Nullable String[] args, @NonNull Handler callbackHandler, @NonNull Runnable callback)
      Same as ensureInitializationComplete(Context, String[]) but waiting on a background thread, then invoking callback on the callbackHandler.
    • initialized

      public boolean initialized()
      Returns whether the FlutterLoader has finished loading the native library.
    • findAppBundlePath

      @NonNull public String findAppBundlePath()
    • getLookupKeyForAsset

      @NonNull public String getLookupKeyForAsset(@NonNull String asset)
      Returns the file name for the given asset. The returned file name can be used to access the asset in the APK through the AssetManager API.
      Parameters:
      asset - the name of the asset. The name can be hierarchical
      Returns:
      the filename to be used with AssetManager
    • getLookupKeyForAsset

      @NonNull public String getLookupKeyForAsset(@NonNull String asset, @NonNull String packageName)
      Returns the file name for the given asset which originates from the specified packageName. The returned file name can be used to access the asset in the APK through the AssetManager API.
      Parameters:
      asset - the name of the asset. The name can be hierarchical
      packageName - the name of the package from which the asset originates
      Returns:
      the file name to be used with AssetManager
    • automaticallyRegisterPlugins

      @NonNull public boolean automaticallyRegisterPlugins()
      Returns the configuration on whether flutter engine should automatically register plugins.