某个android的.so文件的方法应该如何在别的android程序中调用?
答案:2 悬赏:60 手机版
解决时间 2021-02-01 13:16
- 提问者网友:刺鸟
- 2021-02-01 03:05
某个android的.so文件的方法应该如何在别的android程序中调用?
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-02-01 04:05
假设你的library文件名是libmylibrary.so。
如果你的libmylibrary.so文件是在系统library的路径中(比如/system/lib, /system/vendor/lib等目录), 使用以下方法调用:
System.loadLibrary("mylibrary");
如果你的libmylibrary.so文件不再系统路径中, 比如/data/data/com.company.example/libmylibrary.so,使用以下方法调用(用绝对路径):
System.load("/data/data/com.company.example/libmylibrary.so");
如果以上两条路均不通, 使用终极大法,在native code中
#include
然后,使用dlopen()函数load library,然后用dlsym()映射想要的函数入口,然后调用想要的函数。
如果你的libmylibrary.so文件是在系统library的路径中(比如/system/lib, /system/vendor/lib等目录), 使用以下方法调用:
System.loadLibrary("mylibrary");
如果你的libmylibrary.so文件不再系统路径中, 比如/data/data/com.company.example/libmylibrary.so,使用以下方法调用(用绝对路径):
System.load("/data/data/com.company.example/libmylibrary.so");
如果以上两条路均不通, 使用终极大法,在native code中
#include
然后,使用dlopen()函数load library,然后用dlsym()映射想要的函数入口,然后调用想要的函数。
全部回答
- 1楼网友:野味小生
- 2021-02-01 04:48
so文件是unix的动态连接库,是二进制文件,作用相当于windows下的.dll文件。
补充:
在android中调用动态库文件(*.so)都是通过jni的方式。
android中加载so文件的提供的api:
void system.load(string pathname);
说明:pathname:文件名+文件路径;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯