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);   
posted @ 2012-09-04 10:29  retacn_yue  阅读(147)  评论(0编辑  收藏  举报