将预先构建的.so文件添加到android项目中,并使用dlopen和ndk加载它

时间:2012-09-11 13:41:15

标签: android-ndk makefile

我还有一个预建的共享对象文件(mylib.so)和API文件(mylib.h)。现在我必须在我的项目中包含这些文件。我想使用本机接口调用此库中的函数。

但是为库提供的头文件不是 JNI特定的头文件,它是常见的C头文件。我想使用dlopen加载此库并使用dlsym获取符号。所以我可以使用dlsym返回的函数指针来调用这些函数。

我要求的内容

- > Android.mk 文件

- > dlopen( lib_path ,RTLD_LAZY);安装apk文件后 mylib.so 的路径

如果有人这样尝试并成功,请帮助我。

1 个答案:

答案 0 :(得分:0)

从第二个问题开始,调用Java System.Load("my") libmy.so 引入内存通常要容易得多,而不是使用dlopen()。在您的JNI模块中,如果需要,您仍然可以使用dlsym(),但如果您将 libmy.so 提供给中的链接器,通常会自动找到正确的导出函数Android.mk

请阅读相关的NDK文件http://source-android.frandroid.com/ndk/docs/PREBUILTS.html:其解释非常好。