Class FlutterLoader


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

      • 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 Detail

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