2010-07-17 56 views
0

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

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

在此基础上定义,它应该是不可能的......

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

谢谢!

+0

我不明白你为什么认为这是不可能的。这是什么,你期望不会工作?你为什么认为这会失败? – fadden 2010-07-19 17:45:43

回答

2

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

这样做,你应该可以注册相同的本地方法到几个类/包,如果你喜欢。