使用JNI从java类调用.SO函数
我知道这看起来很奇怪,但是,现在我有一个.SO(C中的共享对象),必须在我的Android项目中使用 现在,我的要求是在Java中直接调用.SO中的函数,为.SO中的头创建JNI包装器 我的问题是我假设流量是什么 1.创建JNI本机方法->然后创建头文件,然后->从头文件创建这些方法的实现,将.SO中的.h文件包含在本地实现中,并调用.SO中的方法 或使用JNI从java类调用.SO函数,java,android,java-native-interface,.so,Java,Android,Java Native Interface,.so,我知道这看起来很奇怪,但是,现在我有一个.SO(C中的共享对象),必须在我的Android项目中使用 现在,我的要求是在Java中直接调用.SO中的函数,为.SO中的头创建JNI包装器 我的问题是我假设流量是什么 1.创建JNI本机方法->然后创建头文件,然后->从头文件创建这些方法的实现,将.SO中的.h文件包含在本地实现中,并调用.SO中的方法 或 直接为.SO中的头文件创建JNI本机方法,它将直接调用C方法 或 我们还有别的办法吗 如果我遗漏了什么,请纠正我 我在同一个网站上引用了一些在线
-黑匣子lib.so
-库头文件公开了一些lib.so方法。这些是您可以访问的方法lib.h
和jni.cpp
文件-此代码是java和lib端之间的桥梁。在这里,您将导入jni.h
头文件。这样,您可以接收来自java端的调用,与lib.h
方法通信,并将结果发送回java端lib.so
lib.h
头文件,以便能够调用lib.so
方法。通常,您有:
-黑匣子lib.so
-库头文件公开了一些lib.so方法。这些是您可以访问的方法lib.h
和jni.cpp
文件-此代码是java和lib端之间的桥梁。在这里,您将导入jni.h
头文件。这样,您可以接收来自java端的调用,与lib.h
方法通信,并将结果发送回java端lib.so
在任何情况下,您的JNI代码(无论是单个方法还是更复杂的类)必须包含
lib.h
头文件,以便能够调用lib.so
方法。在这里查看基本示例:(hello world),(从另一个.so文件调用函数)在这里查看基本示例:(hello world),(从另一个.so文件调用函数)