1、
1.1、JNIEXPORT void JNICALL Java_包名_类名_函数名01(JNIEnv * env, jclass clazz) // Java代码中的 静态函数
1.2、JNIEXPORT void JNICALL Java_包名_类名_函数名02(JNIEnv * env, jobject obj) // Java代码中的 非静态函数
2、参数解释:
2.1、参数中的 JNIEnv* env参数的解释:
JNIEnv类型实际上代表了Java环境,通过这个JNIEnv* 指针,就可以对Java端的代码进行操作。例如,创建Jaa类中的对象,调用Java对象的方法,获取Java对象中的属性等等。
JNIEnv的指针会被JNI传入到本地方法的实现函数中来对Java端的代码进行操作。
JNIEnv类中有很多函数可以用:
NewObject:创建Java类中的对象
NewString:创建Java类中的String对象
New<Type>Array:创建类型为Type的数组对象
Get<Type>Field:获取类型为Type的字段
Set<Type>Field:设置类型为Type的字段的值
GetStatic<Type>Field:获取类型为Type的static的字段
SetStatic<Type>Field:设置类型为Type的static的字段的值
Call<Type>Method:调用返回类型为Type的方法
CallStatic<Type>Method:调用返回值类型为Type的static方法
等许多的函数,具体的可以查看jni.h文件中的函数名称。
2.2、参数 : jobject obj的解释:
2.2.1、如果native方法是static的话,这个obj就代表这个native方法的类的class对象实例(static方法不需要类实例的,所以就代表这个类的class对象)
ZC: 即 函数参数中的"jclass clazz"
2.2.2、如果native方法不是static的话,这个obj就代表这个native方法的类实例
ZC: 即 函数参数中的"jobject obj"
3、