星空网 > 软件开发 > 操作系统

Android java传递int类型数组给C

接着前面的文章《Android java传递int类型数据给C》《Android java传递string类型数据给C》,继续实践

实现public native int[] arrElementsIncrease(int[] intArray);

项目布局

<LinearLayout ="http://schemas.android.com/apk/res/android"  ="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  tools:context=".MainActivity" >  <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:onClick="click"    android:text="传递int类型参数" />  <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:onClick="passString"    android:text="传递String类型参数" />  <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:onClick="passIntArray"    android:text="传递Int类型数组" /></LinearLayout>

实现arrElementsIncrease函数

/* * Class:   com_wuyudong_javapassdata_JNI * Method:  arrElementsIncrease * Signature: ([I)[I */JNIEXPORT jintArray JNICALL Java_com_wuyudong_javapassdata_JNI_arrElementsIncrease(    JNIEnv * env, jobject clazz, jintArray jArray){   jsize len = (*env)->GetArrayLength(env, jArray);   // jboolean iscopy;   int* arrayPointer = (*env)->GetIntArrayElements(env, jArray, NULL);   int i;   for(i = 0; i < len; i++){     *(arrayPointer + i) += 10;   }   return jArray; }

MainActivity.java中添加下面的代码:

  public void passIntArray(View v) {    int[] array = new int[] { 1, 2, 3, 4, 5 };    int[] newArray = jni.arrElementsIncrease(array);    for (int i : newArray) {      Log.d("test", i + "");    }  }

 




原标题:Android java传递int类型数组给C

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流