非常に単純なはずです、
byteArrayをJavaからC++に転送するには、次の例を検討してください。
ステップ1:ネイティブメソッドを呼び出すJavaクラスで、メソッドを宣言します(私の例では単純なzip)
private native byte[] jniZipString(byte[] unpackedData, int datasize);
ステップ2:C ++で、javah.exeを使用してヘッダーと実装を生成します[注] bin / classes folerからjavahを呼び出します(Androidのコーディング以降
javah -jni com.example.JavaClassWithNativeMethods
ステップ3:C ++でバイト配列を受け取り、C++バイト配列に変換します
jbyte* tempPointer = env->GetByteArrayElements(jInput, 0);
const char* cinput = (const char*) tempPointer;
int dataSize = (int)env->GetArrayLength(jInput)
ステップ4:データを処理中
whatever you do to process the bytearray
ステップ5:結果のバイト配列をJavaに返します
jbyteArray result = (env)->NewByteArray(newDataSize);
(env)->SetByteArrayRegion(result, 0, newDataSize, (jbyte *) processedCharArray);
return result;