现在的位置: 首页 > 综合 > 正文

Android JNI局部引用表

2018年02月10日 ⁄ 综合 ⁄ 共 360字 ⁄ 字号 评论关闭

1.什么是JNI局部引用表?

在JNI函数中使用Java的对象所产生的局部引用,存放在一张表中,这个表就称为局部引用表。在Android dalvik实现中,每个归属于dalvik管理的线程都有一个局部引用表,表的大小为512.

2.局部引用表爆掉的可能性

局部引用表回收的时机:当从Java层调用native函数的时候,当函数结束之后,会回收掉函数调用所产生的局部引用。但是,当从native线程(一个很显著的例子就是binder线程),通过JNI调用Java的函数所产生的局部引用,如果没有显示的delete,那么虚拟机就不会帮助我们清除。

由此有两个点需要注意:

a.从java层调用native函数时候避免for循环占用局部引用

b.当从native调用java函数的时候,一定要记得清除局部引用。因为虚拟机不会帮助我们清除。

【上篇】
【下篇】

抱歉!评论已关闭.