java - JNI - 如何为不同的类创建库

标签 java android java-native-interface android-ndk

我是 JNI 新手,我正在为 Android 项目开发 native 库。我读了一些关于 JNI 编程的论文,但我不明白是否可以创建一个可以加载到具有不同包的不同项目类中的库。我读到声明一个新的 JNI 方法的语法是:

  • 前缀“Java_”
  • 编码的完全限定类名
  • 下划线(“_”)分隔符
  • 编码方法名称

根据这个定义,这是不可能的......

假设我在包 pkg1 中使用 libfoo 中包含的 native 方法 foo 定义了一个类 A,然后在包 pkg2 中定义了一个类 B。我可以在 B 中使用 libfoo 和 foo 方法吗?我应该如何定义 native 方法来实现结果?

谢谢!

最佳答案

在 Android 上,recommended way to register natives就是使用JNI的RegisterNatives(),因为它比Java_*查找机制更快。

这样做,如果您愿意,您应该能够将相同的 native 方法注册到多个类/包中。

关于java - JNI - 如何为不同的类创建库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3272001/

相关文章:

java - MSVC++ 只编译/禁用链接器

java - 只是想知道我的 ListView 是否将用户引导到每个项目的新屏幕单击

java - Ibatis中如何使用SqlMap映射多条记录

android - 如何正确地将多个通知堆叠在一起?

java - 如何在群聊中显示消息和时间?

java - 将一组垫传递给 native 代码

java - java中的客户端Web服务——代理认证

java - 打印数组的反转时出现 ArrayIndexOutOfBoundsException

android - 当应用程序不在前台时,Ionic/Cordova 触发应用程序操作

java-native-interface - Javah 错误,找不到类文件