Home

Awesome

Thanks

Android N的实现来自 https://github.com/avs333/Nougat_dlfunctions

做了一点优化处理

技术原理

见美团的《Android远程调试的探索与实现》相关文章中"符号化"和"突破7.0动态链接的限制"两部分

Android远程调试的探索与实现

使用方式

引入cmake

set(dlfcn_compat_root_dir /path/to/dlfcn)
add_subdirectory(${dlfcn_compat_root_dir} dlfcn)
include_directories(
         ${dlfcn_compat_root_dir}/include/
)

链接静态库

target_link_libraries(yourSharedLibrary
        dlfcn_compat_static
)

引入头文件

#include "dlfcn_compat.h"

相关函数

extern "C" {

void *dlopen_compat(const char *filename, int flags);

void *dlsym_compat(void *handle, const char *symbol);

int dlclose_compat(void *handle);

const char *dlerror_compat();

int get_sdk_level();

}

sample 见 app/src/main/cpp/sample.cpp