ReleaseFloatArrayElements和DeleteLocalRef的区别是什么?

What is the difference between ReleaseFloatArrayElements and DeleteLocalRef

本文关键字:是什么 区别 DeleteLocalRef ReleaseFloatArrayElements      更新时间:2023-10-16

我正在尝试使用JNI做一个android应用程序。我有一个方法,作为输入数组(jfloatArray featurePoints):

jfloat* flt1 = env->GetFloatArrayElements(featurePoints,0);

在使用这个数组后,我试图释放内存。我应该使用

吗?
env->ReleaseFloatArrayElements(featurePoints, flt1, 0);

env->DeleteLocalRef(featurePoints);

当您使用GetXxArrayElements()来撤销工作时,您需要调用ReleaseXxArrayElement()。

env->ReleaseFloatArrayElements( featurePoints , (jfloat *)flt1, 0);
// we cleanup local ref 
env->DeleteLocalRef(featurePoints);