Bionic libc doesn ' t load dependencies for current. so file (diff from Windows or Linux)
So a explicit calling of Java's system.loadlibrary () is needed, in order to load depedency libraries. Otherwise the original so would fail to load.
Jni_onload'll be called mostly on system.loadlibrary () or equavilent calls
System.loadlibrary ("gnustl_shared");
The. so file are loaded & and symbol get loaded by common dynamic library function:
Dlopen
Dlsym
If the symbol "Jni_onload" is not found in the Lib, Dalvik would simply do nothing, but a Debug log:no jni_onload found in Xxx.so, skipping init.
Details at:
Dalvik/vm/native.c
Natvieacitviy:jni_onload is not get called
For the startup library, speicified by " Android.app.lib_name ", Jni_onload is not get called,
Only libs loaded by System.loadlibrary () would.
[Work accumulation] Android Dynamic Library & Jni_onload