我是 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/