io.flutter.embedding.engine.loader

## 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.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `FlutterLoader.Settings`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FlutterLoader()` Creates a `FlutterLoader` that uses a default constructed `FlutterJNI`.
    `FlutterLoader(FlutterJNI flutterJNI)` Creates a `FlutterLoader` with the specified `FlutterJNI`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `automaticallyRegisterPlugins()` Returns the configuration on whether flutter engine should automatically register plugins.
    `void` | `ensureInitializationComplete(Context applicationContext, String[] args)` Blocks until initialization of the native system has completed.
    `void` | `ensureInitializationCompleteAsync(Context applicationContext, String[] args, Handler callbackHandler, Runnable callback)` Same as `ensureInitializationComplete(Context, String[])` but waiting on a background thread, then invoking `callback` on the `callbackHandler`.
    `String` | `findAppBundlePath()`
    `static FlutterLoader` | `getInstance()` Deprecated. Use the `FlutterInjector` instead.
    `String` | `getLookupKeyForAsset(String asset)` Returns the file name for the given asset.
    `String` | `getLookupKeyForAsset(String asset, String packageName)` Returns the file name for the given asset which originates from the specified packageName.
    `boolean` | `initialized()` Returns whether the FlutterLoader has finished loading the native library.
    `void` | `startInitialization(Context applicationContext)` Starts initialization of the native system.
    `void` | `startInitialization(Context applicationContext, FlutterLoader.Settings settings)` Starts initialization of the native system.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FlutterLoader

          public FlutterLoader()

      Creates a `FlutterLoader` that uses a default constructed `FlutterJNI`.

    - #### FlutterLoader

          public FlutterLoader(@NonNull
                               FlutterJNI flutterJNI)

      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.

  - ### Method Detail

    - #### getInstance

          @Deprecated
           @NonNull
          public static FlutterLoader getInstance()

      Deprecated. Use the `FlutterInjector` instead.
      Returns a singleton `FlutterLoader` instance.

      The returned instance loads Flutter native libraries in the standard way. A singleton object is used instead of static methods to facilitate testing without actually running native library linking.

    - #### 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.