【发布时间】:2019-03-20 14:37:40
【问题描述】:
我知道这可能看起来很奇怪,但是,现在我有一个 .SO(C 中的共享对象)并且必须在我的 Android 项目中使用。
现在我的要求是直接在 Java 中调用 .SO 中的函数,为 .SO 中的标头创建 JNI 包装器。
我的问题是我假设流程是什么,
1.创建 JNI 本地方法 -> 然后创建头文件,然后 -> 从头文件创建这些方法的实现,将 .SO 中的 .h 文件包含在本地实现中并调用 .SO 中存在的方法
或
- 直接为 .SO 中的头文件创建一个 JNI 本机方法,它将直接调用 C 方法。
或
- 我们还有其他方法吗?
如果我遗漏了什么,请纠正我。
我已经参考了一些在线内容,我可以说以下所有这些示例都与我需要的完全不同。
https://www.codepool.biz/package-jni-shared-library-jar-file.html
https://www.codepool.biz/build-so-aar-android-studio.html
https://dzone.com/articles/generating-executable-jar-file
https://www.ibm.com/developerworks/java/tutorials/j-jni/j-jni.html
【问题讨论】:
-
在这里查看基本示例:github.com/mkowsiak/jnicookbook/tree/master/recipeNo001(hello world)、jnicookbook.owsiak.org/recipe-No-023(从另一个 .so 文件调用函数)
标签: java android java-native-interface .so