JNIEXPORT void JNICALL Java_com_example_Test(JNIEnv* env , jobject obj);
JNIEXPORT:是jni.h中的一个被定义的宏。在Jni编程中所有本地语言实现Jni接口的方法前面都有一个"JNIEXPORT",这个可以看做是Jni的一个标志。
void:方法的返回值。
JNICALL:是jni.h中的一个被定义的宏。意思为JNI调用某方法。
JNICALL Java_com_example_Test:指JNICALL调用的方法名,也是java中的native方法名。命名规则:包名+类名+方法名。
JNIEnv* env :env指JNI接口本身的一个对象。
jobject obj:举例Test t=new Test(); t.firstTest(); 这个jobject需要两种情况分析。上段代码中firstTest方法是一个非静态方法,在Java中要想调用它必须先实例化对象,然后再用对象调用它,那这个时候jobject就可以看做Java类的一个实例化对象,也就是obj就是t。如果firstTest是一个静态方法,那么在Java中,它不是属于一个对象的,而是属于一个类的,Java中用Test.firstTest()这样的方式来调用,这个时候jobject就可以看做是java类的本身,也就是obj就是Test.class。
有问题和建议希望留言提出或者发邮箱给我,虚心倾听学习! 邮箱:1203782828@qq.com