JNI学习笔记五

处理数组
基本类型的数组
Get<TPYE> ArrayElements(<TYPE>Array arr,jboolean* isCopied);
Release<TPYE> ArrayElements(<TYPE>Array arr,jboolean* isCopied);


GetPrimitivArrayCritical(<jarray arr,jboolean* isCopied);
Release<TPYE> ArrayElements(jarray arr,void* array,jboolean* isCopied);


//开内存放到内存中
Get<TYPE>ArrayRegion(<TYPE>Array arr,jsize start, jsize len <TYPE>* buffer);
Set<TYPE>ArrayRegion(<TYPE>Array arr,jsize start, jsize len <TYPE>* buffer);

对象类型数组


//取得数组属性
jfieldID fid_arrays=env->GetFieldID(env->GetObjectClass(obj),"arrays","[I");


jintArray jint_arr=(jintArray)env->GetObjectField(obj,fid_arrays);


//取得数组属性元素
jint* int_arr=env->GetIntArrayElements(jint_arr,NULL);
jsize len=env->GetArrayLength(jint_arr);


for(jsize i=0;i<len;++i)
{
cout<<int_arr[i]<<endl;



}
env->ReleaseIntArrayElements(jint_arr,int_arr,JNI_ABORT);

你可能感兴趣的:(jni)