Android native library merging
Jan 23, 2018David Reiss

Summary
This post details a scalable solution developed by Meta to overcome the native library limit in Android versions prior to 4.3. It introduces a build system integration with Buck to merge native libraries by combining objects and specifically addresses the challenge of duplicate JNI_OnLoad symbols using custom ELF sections and a registration object. The solution also integrates with SoLoader for seamless library loading and includes strategies for handling edge cases and determining optimal merging policies. A demonstration repository is provided to showcase the techniques.