程序员在使用 JNI 时的 5 大性能缺陷如下:
这篇帖子解决了我很大一个问题(当数组较大时总是进程死掉,就是因为对二维数组没有DeleteLocalRef的原因):
void workOnArray(JNIEnv* env, jobject obj, jarray array){
jint i;
jint count = (*env)->GetArrayLength(env, array);
for (i=0; i < count; i++) {
jobject element = (*env)->GetObjectArrayElement(env, array, i);
if((*env)->ExceptionOccurred(env)) {
break;
}
/* do something with array element */
(*env)->DeleteLocalRef(env, element);
}
}