能力值:
( LV3,RANK:20 )
|
-
-
2 楼
对象引用是对象在内存中的实际指针, 在JNI交互过程直接暴露对象引用显然不安全, 从而有了间接引用, 它是JNI引用表的特殊索引, 使用间接引用也使GC具备了移动对象的能力。 间接引用是针对JNI交互过程而言的, 在VM内部使用的当然还是对象引用, 如果不是JNI方法是不需要变回间接引用的。 dvmCallMethod实质调用dvmCallMethodV, 并且后者参数bool fromJni被指定为false, 说明dvmCallMethod仅接受对象引用, 剩下的就是VM内部处理的事了。
|
能力值:
( LV5,RANK:70 )
在线值:

|
-
-
3 楼
rrrfff
对象引用是对象在内存中的实际指针, 在JNI交互过程直接暴露对象引用显然不安全, 从而有了间接引用, 它是JNI引用表的特殊索引, 使用间接引用也使GC具备了移动对象的能力。
间接引用是针对JNI交 ...
哦,好像明白了点。dvmCallMethodV方法的bool fromJni参数直接决定JNI方法中的间接引用是否转换成对象引用。而Dalvik虚拟内部使用的对象仍然是对象引用。万分感谢!
|
|
|