Package com.facebook.soloader
Class ApplicationSoSource
- java.lang.Object
-
- com.facebook.soloader.SoSource
-
- com.facebook.soloader.ApplicationSoSource
-
-
Field Summary
-
Fields inherited from class com.facebook.soloader.SoSource
LOAD_FLAG_ALLOW_IMPLICIT_PROVISION, LOAD_FLAG_ALLOW_SOURCE_CHANGE, LOAD_FLAG_MIN_CUSTOM_FLAG, LOAD_RESULT_CORRUPTED_LIB_FILE, LOAD_RESULT_IMPLICITLY_PROVIDED, LOAD_RESULT_LOADED, LOAD_RESULT_NOT_FOUND, PREPARE_FLAG_ALLOW_ASYNC_INIT, PREPARE_FLAG_DISABLE_FS_SYNC_JOB, PREPARE_FLAG_FORCE_REFRESH
-
-
Constructor Summary
Constructors Constructor Description ApplicationSoSource(android.content.Context context, int flags)
-
Method Summary
Modifier and Type Method Description voidaddToLdLibraryPath(java.util.Collection<java.lang.String> paths)Add an element to an LD_LIBRARY_PATH under construction.booleancheckAndMaybeUpdate()check to make sure there haven't been any changes to the nativeLibraryDir since the last check, if there have been changes, update the context and soSourcejava.lang.String[]getLibraryDependencies(java.lang.String soName)Gets the dependencies of a library if it is found on this SoSourcejava.lang.StringgetLibraryPath(java.lang.String soName)Gets the full path of a library if it is found on this SoSource.static java.io.FilegetNativeLibDirFromContext(android.content.Context context)java.io.FilegetSoFileByName(java.lang.String soName)android.content.ContextgetUpdatedContext()intloadLibrary(java.lang.String soName, int loadFlags, android.os.StrictMode.ThreadPolicy threadPolicy)Load a shared library library into this process.java.lang.StringtoString()Return the class name of the actual instance.java.io.FileunpackLibrary(java.lang.String soName)Ensure that a shared library exists on disk somewhere.-
Methods inherited from class com.facebook.soloader.SoSource
getSoSourceAbis
-
-
-
-
Method Detail
-
checkAndMaybeUpdate
public boolean checkAndMaybeUpdate() throws java.io.IOExceptioncheck to make sure there haven't been any changes to the nativeLibraryDir since the last check, if there have been changes, update the context and soSource- Returns:
- true if the nativeLibraryDir was updated
- Throws:
java.io.IOException- IOException
-
getUpdatedContext
public android.content.Context getUpdatedContext()
-
getNativeLibDirFromContext
public static java.io.File getNativeLibDirFromContext(android.content.Context context)
-
loadLibrary
public int loadLibrary(java.lang.String soName, int loadFlags, android.os.StrictMode.ThreadPolicy threadPolicy) throws java.io.IOExceptionDescription copied from class:SoSourceLoad a shared library library into this process. This routine is independent ofSoSource.loadLibrary(java.lang.String, int, android.os.StrictMode.ThreadPolicy).- Specified by:
loadLibraryin classSoSource- Parameters:
soName- Name of library to loadloadFlags- Zero or more of the LOAD_FLAG_XXX constants.threadPolicy- Strict Mode policy- Returns:
- One of the LOAD_RESULT_XXX constants.
- Throws:
java.io.IOException- IOException
-
getSoFileByName
@Nullable public java.io.File getSoFileByName(java.lang.String soName) throws java.io.IOException- Throws:
java.io.IOException
-
getLibraryPath
@Nullable public java.lang.String getLibraryPath(java.lang.String soName) throws java.io.IOExceptionDescription copied from class:SoSourceGets the full path of a library if it is found on this SoSource.- Overrides:
getLibraryPathin classSoSource- Parameters:
soName- the full file name of the library- Returns:
- the full path of a library if it is found on this SoSource, null otherwise.
- Throws:
java.io.IOException- if there is an error calculatingsoFileName's canonical path
-
getLibraryDependencies
@Nullable public java.lang.String[] getLibraryDependencies(java.lang.String soName) throws java.io.IOExceptionDescription copied from class:SoSourceGets the dependencies of a library if it is found on this SoSource- Overrides:
getLibraryDependenciesin classSoSource- Parameters:
soName- Name of library to inspect- Returns:
- An array of library names upon which
soNameneeds for linking - Throws:
java.io.IOException- ifsoNameis found but there is an error reading it
-
unpackLibrary
@Nullable public java.io.File unpackLibrary(java.lang.String soName) throws java.io.IOExceptionDescription copied from class:SoSourceEnsure that a shared library exists on disk somewhere. This routine is independent ofSoSource.loadLibrary(java.lang.String, int, android.os.StrictMode.ThreadPolicy).- Specified by:
unpackLibraryin classSoSource- Parameters:
soName- Name of library to load- Returns:
- File if library found;
nullif not. - Throws:
java.io.IOException- IOException
-
addToLdLibraryPath
public void addToLdLibraryPath(java.util.Collection<java.lang.String> paths)
Description copied from class:SoSourceAdd an element to an LD_LIBRARY_PATH under construction.- Overrides:
addToLdLibraryPathin classSoSource- Parameters:
paths- Collection of paths to which to add
-
-