Convert eight basic java types of arrays into arrays in C Language
Jboolean * (* getbooleanarrayelements) (jnienv *, jbooleanarray, jboolean *);
Jbyte * (* getbytearrayelements) (jnienv *, jbytearray, jboolean *);
Jchar * (* getchararrayelements) (jnienv *, jchararray, jboolean *);
Jshort * (* getshortarrayelements) (jnienv *, jshortarray, jboolean *);
Jint * (* getintarrayelements) (jnienv *, jintarray, jboolean *);
Jlong * (* getlongarrayelements) (jnienv *, jlongarray, jboolean *);
Jfloat * (* getfloatarrayelements) (jnienv *, jfloatarray, jboolean *);
Jdouble * (* getdoublearrayelements) (jnienv *, jdoublearray, jboolean *); get the length of the array: jsize (* getarraylength) (jnienv *, jarray); release the Array Memory: void (* releasebooleanarrayelements) (jnienv *, jbooleanarray,
Jboolean *, jint );
Void (* releasebytearrayelements) (jnienv *, jbytearray,
Jbyte *, jint );
Void (* releasechararrayelements) (jnienv *, jchararray,
Jchar *, jint );
Void (* releaseshortarrayelements) (jnienv *, jshortarray,
Jshort *, jint );
Void (* releaseintarrayelements) (jnienv *, jintarray,
Jint *, jint );
Void (* releaselongarrayelements) (jnienv *, jlongarray,
Jlong *, jint );
Void (* releasefloatarrayelements) (jnienv *, jfloatarray,
Jfloat *, jint );
Void (* releasedoublearrayelements) (jnienv *, jdoublearray,
Jdouble *, jint); Create an array jbooleanarray (* newbooleanarray) (jnienv *, jsize );
Jbytearray (* newbytearray) (jnienv *, jsize );
Jchararray (* newchararray) (jnienv *, jsize );
Jshortarray (* newshortarray) (jnienv *, jsize );
Jintarray (* newintarray) (jnienv *, jsize );
Jlongarray (* newlongarray) (jnienv *, jsize );
Jfloatarray (* newfloatarray) (jnienv *, jsize );
Jdoublearray (* newdoublearray) (jnienv *, jsize );
Assign void (* setbooleanarrayregion) (jnienv *, jbooleanarray,
Jsize, jsize, const jboolean *);
Void (* setbytearrayregion) (jnienv *, jbytearray,
Jsize, jsize, const jbyte *);
Void (* setchararrayregion) (jnienv *, jchararray,
Jsize, jsize, const jchar *);
Void (* setshortarrayregion) (jnienv *, jshortarray,
Jsize, jsize, const jshort *);
Void (* setintarrayregion) (jnienv *, jintarray,
Jsize, jsize, const jint *);
Void (* setlongarrayregion) (jnienv *, jlongarray,
Jsize, jsize, const jlong *);
Void (* setfloatarrayregion) (jnienv *, jfloatarray,
Jsize, jsize, const jfloat *);
Void (* setdoublearrayregion) (jnienv *, jdoublearray,
Jsize, jsize, const jdouble *);
// Pass to the C language array jniexport jintarray jnicall struct (jnienv * ENV, jobject OBJ, jintarray ARR) {// obtain the length of the array int Len = (* env)-> getarraylength (ENV, ARR); Logi ("Len = % d \ n", Len); // get the int type array jint * elems = (* env)-> getintarrayelements (ENV, arr, null); jint temp = 0; int I = 0; For (; I <Len; I ++) {elems [I] + = 10 ;} // copy elems to ARR, starting from 0th bits. Length bits Len (* env)-> setintarrayregion (ENV, arr, 0, Len, elems); (* env) -> releasebytearrayelements (ENV, elems, 0); Return arr ;}
Mobile development QQ group: 59516399