一.MainActivity代码
package com.study.changearray;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity
{
static
{
System.loadLibrary("changearray-jni");
}
int[] jarr = {5,1,2,3,4,6,9,8,7};
public native void changeArray(int[] jarr);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeArray(jarr);
for(int i = 0;i < jarr.length;i++)
{
System.out.println(jarr[i]);
}
}
layout代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Android.mk代码
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := changearray-jni
LOCAL_SRC_FILES := changearray-jni.c
include $(BUILD_SHARED_LIBRARY)
changearray-jni.c代码
#include <jni.h>
#include <stdio.h>
JNIEXPORT void JNICALL Java_com_study_changearray_MainActivity_changeArray
(JNIEnv *env, jobject obj, jintArray jarr){
jsize len= (*env)->GetArrayLength(env, jarr);
jint * cint = (*env)->GetIntArrayElements(env, jarr, NULL);
int i = 0;
int j = 0;
int temp = 0;
for(i = 0;i < len - 1;i++){
for(j = 0;j < len - i - 1;j++){
if(cint[j] > cint[j + 1]){
temp = cint[j];
cint[j] = cint[j + 1];
cint[j + 1] = temp;
}
}
}
}
com_study_changearray_MainActivity.h
#include <jni.h>
#ifndef _Included_com_study_changearray_MainActivity
#define _Included_com_study_changearray_MainActivity
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_com_study_changearray_MainActivity_changeArray
(JNIEnv *, jobject, jintArray);
#ifdef __cplusplus
}
#endif
#endif