안 드 로 이 드 - 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>  

좋은 웹페이지 즐겨찾기