安卓7.0动态链接库加载流程

Runtime.c

1
Runtime_nativeLoad()

OpenjdkJvm.cc

1
JVM_NativeLoad()

java_vm_ext.cc

1
LoadNativeLibrary()

native_loader.cpp

1
OpenNativeLibrary()

dlfcn.cpp

1
2
dlopen()
dlopen_ext()

linker.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
do_dlopen()
find_library()
find_libraries()
find_library_internal
load_library(android_namespace_t* ns,
LoadTask* task,
ZipArchiveCache* zip_archive_cache,
LoadTaskList* load_tasks,
int rtld_flags)
load_library(android_namespace_t* ns,
LoadTask* task,
LoadTaskList* load_tasks,
int rtld_flags,
const std::string& realpath)
LoadTask->read()

linker_phdr.cpp

1
ElfReader->Read()

参考:http://wps2015.org/drops/drops/Android%20Linker%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.html