package com.mapbox.mapboxsdk; import timber.log.Timber; /** * Loads the mapbox-gl shared library *

* By default uses the {@link System#loadLibrary(String)}, * use {@link #setLibraryLoader(LibraryLoader)} to provide an alternative library loading hook. *

*/ public abstract class LibraryLoader { private static final LibraryLoader DEFAULT = new LibraryLoader() { @Override public void load(String name) { System.loadLibrary(name); } }; private static volatile LibraryLoader loader = DEFAULT; /** * Set the library loader that loads the shared library. * * @param libraryLoader the library loader */ public static void setLibraryLoader(LibraryLoader libraryLoader) { loader = libraryLoader; } /** * Loads "libmapbox-gl.so" native shared library. *

* Catches UnsatisfiedLinkErrors and prints a warning to logcat. *

*/ public static void load() { try { loader.load("mapbox-gl"); } catch (UnsatisfiedLinkError error) { Timber.e(error, "Failed to load native shared library."); } } public abstract void load(String name); }