[Android] JNI note - How to two-way access ByteBuffer between JAVA and JNI?

Allocate memory at Java by java.nio.ByteBuffer:
ByteBuffer bytes = ByteBuffer.allocateDirect(size)

Then JNI can share the same memory space with JAVA by
jbyte *directBuffer = (*env)->GetDirectBufferAddress(env, byteBuffer);
jlong directBufferLength = (*env)->GetDirectBufferCapacity(env, byteBuffer);


Reference: Java Native Interface - Accessing Array

留言

這個網誌中的熱門文章

逃得了一時 逃不了一世

Google Hangouts

我老闆是真男人!