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

时间:2010-07-17 15:00:08

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

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

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

根据这个定义,它不可能......

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

这样做,如果你愿意,你应该可以将相同的本机方法注册到几个类/包中。

答案 1 :(得分:0)