JMI - JNI 的 C++11/14封装


MIT
跨平台
Java

软件简介

JMI 是 JNI 的 C++11/14封装,目的是为了简化JNI使用。具有以下特点:

- JNI的signature字符串由编译器辅助生成,减少代码量又不会出错

- 支持带出参的方法,如

void SurfaceTexture.getTransformMatrix(float[] mtx)

对应的C++代码

jfloat mtx[16];
st.call("getTransformMatrix", std::ref(mtx));

- jclass、jmethodID、jfieldID都可缓存,使用值转型机制

- 提供getEnv()来获得JNIEnv而 不需操心线程问题

- 接口简单易用。比如如field接口

auto f = obj.field<jint>("myIntFieldName");
f = 123;
jint value = f;