Andriod中JNI调用C函数,根据JNI的规范封装的C函数,其它package就无法再使用了,对吗?

dior_jadore 2012-06-07 03:34:04
请教,Andriod中通过JNI调用linux下的动态库里的C函数,根据JNI的规范封装后的C函数,其它package就无法再使用了,对吗?

因为函数名需要按照JNI的规范,例如
Java_com_test_TestHelloLib_printHello的命名对应后面在java代码中,package名字是com.test,类名是TestHelloLib,native函数名是printHello。

那么这样封装好的函数,NDK编译产生的库文件.so,就无法被其它andriod工程使用了,对吗?
...全文
268 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunZhanwei 2012-06-08
  • 打赏
  • 举报
回复
可以使用动态注册的方式,这样的方式是可以的。
meng_tianshi 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

楼主可以把jni调用都封装到一个单独的class里,以后直接就用这个类不就行了。
[/Quote]

赞成,楼主可以将你要用到的Native方法全部放在一个类中,然后编译相应的库,以后只要那个库文件,及这个类就可以用在其他工程中调用库中的函数了,我现在就是这么干的。呵呵.......
shichuan609 2012-06-07
  • 打赏
  • 举报
回复
我觉得你可以看看,如何动态注册JNI,给个参考
http://blog.csdn.net/chenfeng0104/article/details/7088600
louyong0571 2012-06-07
  • 打赏
  • 举报
回复
楼主可以把jni调用都封装到一个单独的class里,以后直接就用这个类不就行了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧