본문 바로가기

공부/Android

JNI에 다차원 배열 넘겨주기.

Java 소스



package com.jeikei.lib.ndk.test;


import android.util.Log;


public class GestureRecognizer {

byte[][][][][][] testByte = new byte[2][2][2][2][2][2];

public GestureRecognizer()

{

initTestByte();

}


public void gestureStart()

{

beginGestureJni(testByte);

public int gestureEnd()

{

if(endGestureJni() == 1)

return 1;

else

return -1;

}

private void initTestByte()

{

int numData = 2;

for(int a=0; a<numData; a++)

{

for(int b = 0; b<numData; b++)

{

for(int c = 0; c<numData; c++)

{

for(int d = 0; d<numData; d++)

{

for(int e = 0; e<numData; e++)

{

for(int f = 0; f<numData; f++)

{

testByte[a][b][c][d][e][f] = (byte)(a+b+c+d+e+f);

Log.d("JeiKei", "from Java testByte : " + testByte[a][b][c][d][e][f]);

}

}

}

}

}

}

}

public native void beginGestureJni(byte[][][][][][] value);

public native int endGestureJni();

static{

System.loadLibrary("gesture_lib");

}

}





C 소스

JNIEXPORT void JNICALL Java_com_jeikei_lib_ndk_test_GestureRecognizer_beginGestureJni(JNIEnv *env, jobject thiz, jbyteArray value)

{

jobjectArray ret;

jbyteArray oneDim, twoDim, threeDim, fourDim, fiveDim;

jbyte *element;


int i ,j,  a,b,c,d,e,f;

char localArrayCopy[2][2][2][2][2][2];

int numData = 2;


char logBuffer[512];


for(a=0; a<numData; a++)

{

oneDim = (jbyteArray)(* env)->GetObjectArrayElement(env, value, a);


for(b = 0; b<numData; b++)

{

twoDim = (jbyteArray)(* env)->GetObjectArrayElement(env, oneDim, b);

for(c = 0; c<numData; c++)

{

threeDim = (jbyteArray)(* env)->GetObjectArrayElement(env, twoDim, c);

for(d = 0; d<numData; d++)

{

fourDim = (jbyteArray)(* env)->GetObjectArrayElement(env, threeDim, d);

for(e = 0; e<numData; e++)

{

fiveDim = (jbyteArray)(* env)->GetObjectArrayElement(env, fourDim, e);

for(f = 0; f<numData; f++)

{

element = (* env)->GetByteArrayElements(env, fiveDim, 0);


localArrayCopy[a][b][c][d][e][f] = element[j];


sprintf(logBuffer, "%d%d%d%d%d%d, value : %d", a,b,c,d,e,f, localArrayCopy[a][b][c][d][e][f] );

__android_log_write(ANDROID_LOG_DEBUG,"JeiKei", logBuffer );

}

}

}

}

}

}

}



'공부 > Android' 카테고리의 다른 글

안드로이드 잠금 화면 만들기  (0) 2011.12.29
카메라 무음 만들기  (0) 2011.12.10
안드로이드 루팅 CM7설치 및 A2SD 설치  (0) 2011.12.09
안드로이드 C2DM  (0) 2011.06.30
안드로이드에서 휠 모양 입력 구현  (0) 2011.06.07