创建没有JNI导出的共享库,以便从另一个本机库使用

时间:2011-05-05 22:26:12

标签: android android-ndk

我想创建一个可以从本机代码动态加载的本机库。我不希望这个库导出JNI函数。您将如何编写和编译该库?

我已经查看了NDK中的预构建库,但没有找到它们的完整用法示例 - 只有Android.mk文件的示例。这就是我要找的东西吗?如果是这样,是否有适用于预建库的完整示例代码?

由于

1 个答案:

答案 0 :(得分:1)

基本上与具有jni函数的库相同。直到运行时才检查java和jni代码之间的一致性。

如果你想单独构建它,最简单的方法是设置一个ndk项目的目录结构,而不是填充除jni之外的任何子目录 - 尽管你并不局限于这样做那样。

如果你想要一个平面目录结构,你可以这样做:

cat > Makefile
ndkbuild:
    /your/ndk/directory/ndk-build V=1 \
    NDK_PROJECT_PATH=. \
    APP_BUILD_SCRIPT=./Android.mk 

^D

然后在该目录中设置Android.mk。

然后你可以输入'make'