SoLoader
SoLoader is a native code loader for Android. It takes care of unpacking your native libraries and recursively loads dependencies on Android API 23 and earlier, since those old OS versions do not support all of that functionality out of box.
Requirements
SoLoader is useful for applications running on Android API 23 and earlier. SoLoader should not be used on Android API 24 and above unless the app is delivered as Exopackage, requires Android Native Library Merging or uses Superpack compression.
Including SoLoader in your apps
You can use prebuilt aars
or fetch SoLoader from Maven repository by adding the following to your
build.gradle file:
implementation 'com.facebook.soloader:soloader:0.13.0+'
Building from source
To build the Android library and its two Java dependencies with Gradle, install the Android SDK and JDK 17, then run:
./gradlew :soloader:assembleDebug :annotation:jar :nativeloader:jar
The AAR is written to soloader/build/outputs/aar/, and the annotation and
nativeloader JARs to their respective build/libs/ directories.
Run ./gradlew publishToMavenLocal to publish all three artifacts to your local
Maven repository, using the version from the artifacts/ configuration files.
The published class files target Java 7, matching earlier SoLoader releases.
Formatting Java sources
From this directory, run ./gradlew format to format all Java sources, or
./gradlew formatCheck to check them without making changes. Both commands work
in a standalone checkout or in fbsource/fbandroid/libraries/soloader and use a
pinned Google Java Format version downloaded by Gradle. No formatter binary is
stored in the repository.
The existing Buck build is also available. Once you have Buck installed, run the following commands from the project root directory:
buck fetch //...
buck build :soloader
The build command generates buck-out/gen/soloader.aar file.
Join our community
Please use our issues page to let us know of any problems. See the CONTRIBUTING file for how to help out.
License
SoLoader is Apache-2.0-licensed.
