本文主要是介绍Android-NDK开发之第三个例子--传递整型数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转自:http://blog.csdn.net/geolo/article/details/5954010
和以前不同,这次只放代码,不再写步骤,但是,养成一个好的书写步骤是很有必要的,这样你就不容易出错,也容易通过你的步骤来找出错误。特别是你在C/C++代码中出错的时候。
Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := native LOCAL_SRC_FILES := myNative.c include $(BUILD_SHARED_LIBRARY)
myNative.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include<jni.h> jintArray Java_com_geolo_android_AndoidNDKSample_getIntArray(JNIEnv* env , jobject obj){ int i = 1; jintArray array;//定义数组对象 array = (*env)-> NewIntArray(env, 10); for(; i<= 10; i++){ (*env)->SetIntArrayRegion(env, array, i-1, 1, &i); } return array; }
AndoidNDKSample.java
package com.geolo.android; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class AndoidNDKSample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textView = (TextView)findViewById(R.id.text); int myArray[] = getIntArray(); String myArrayStr = ""; for(int my : myArray){ myArrayStr += ("my: "+ my + "/n"); } textView.setText("getIntArray: " + myArrayStr ); } static{ System.loadLibrary("native"); } public native int[] getIntArray(); }
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
这篇关于Android-NDK开发之第三个例子--传递整型数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!