MainActivity.java
package com.example.arraylist;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
ArrayList<Byte> list;
ArrayList<Byte> listout;
byte abc[]={0x01,0x02,0x03,0x04,0x05};
MyThread myThread;
boolean over=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list=new ArrayList<>();
myThread=new MyThread();
myThread.start();
}
static{
System.loadLibrary("jni");
}
public native int GetList(ArrayList<Byte> in,ArrayList<Byte> out);
public native int Sendshuzu(byte[] a);
class MyThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
for (int i = 0; i < 5; i++) {
list.add(abc[i]);
}
for (int j = 0; j < 5; j++) {
Log.i("java", "list--->"+list.get(j));
}
GetList(list,listout);
}
}
}
native.c
#include <stdio.h>
#include <android/log.h>
#include <jni.h>
#include <string.h>
#define LOG_TAG "Arraylist"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
JNIEXPORT jint Java_com_example_arraylist_MainActivity_GetList(JNIEnv* env, jobject clazz,const jbyteArray aaa,jbyteArray out){
int i;
jbyte * Buf = (jbyte*)(*env)->GetByteArrayElements(env, aaa, 0);
jbyte * Buf1= (jbyte*)(*env)->GetByteArrayElements(env, out, 0);
for(i=0;i<5;i++){
LOGE("abc-->%d",(int)*Buf);
Buf++;
}
(*env)->ReleaseByteArrayElements(env, aaa, Buf, 0);
(*env)->ReleaseByteArrayElements(env, out, Buf1, 0);
return 0;
}