使用dlsym动态取用so中函数
来源:互联网 发布:淘宝怎么退货给卖家 编辑:程序博客网 时间:2024/06/14 09:23
由于android的版本不断更新,不同版本间底层代码有不同程度的改变,虽然NDK可以解决部分问题,但是当如果我们的代码使用了NDK以外的库,那我们就要花费很大力气去适配不同的版本,以应为底层代码的改变。通过阅读别人的代码,发现使用dlsym可以减轻适配工作量。过程是这样的:
1,找到不同版本间so库的函数名字的改变,使用readelf -s -W命令来分析函数名称。如果ctor/dtor函数有变化,那一般不能通过这种方式来动态调用,因为我们不知道要构造的类的大小,所以还应该有头文件配合才行。
2,找到函数之后,用dlsym在so里动态找到函数指针,这一步将所有的可能的函数名字列出,在目标机器上就可以找到对应的函数入口
3,调用函数。
- 使用dlsym动态取用so中函数
- dlsym 不同so中的同名函数
- dlopen与dlsym的说明和使用-动态拿到函数地址
- dlsym函数
- dlsym函数
- Linux 中 dlopen、dlsym、dlclose、dlerror函数
- LINUX下动态链接库dlopen dlsym dlclose函数使用说明
- LINUX下动态链接库dlopen dlsym dlclose函数使用说明
- 用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())
- [Linux]使用dlopen、dlsym、dlclose操作访问动态链接库
- Android下使用dlopen函数动态调用.so链接库
- Android下使用dlopen函数动态调用.so链接库
- Android下使用dlopen函数动态调用.so链接库
- linux 使用动态so
- JNI 如何使用dlopen,dlsym调用第三方自定义的 .so库(包括JNI->JNI)
- JNI 如何使用dlopen,dlsym调用第三方自定义的 .so库( JNI->C,C++)
- linux下so库的加载和使用(dlopen/dlsym/dlclose)
- dlopen/dlsym函数
- 技巧:Linux 动态库与静态库制作及使用详解
- hdu 2159 FATE(二维费用背包)
- Linux几个版本的介绍-(Redhat,Debian,Ubuntu,Gentoo,FreeBSD)
- [各种面试题] 前后序遍历统计树
- stl_func STT_FILE
- 使用dlsym动态取用so中函数
- Linux 内存的延迟分配
- 警惕!C++里面“=”不一定就是等于(赋值)。
- 用cocos2d-x画类似心电图的代码例子
- Opengl分格化(libtess)移植与使用
- Java web之doPost()和doGet()
- WIFI驱动结构介绍
- error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.
- 第二月实习总结 [大三四八九月实习]