Android ndk 如何在编写本机代码时使用env?
什么是Android ndk 如何在编写本机代码时使用env?,android-ndk,java-native-interface,Android Ndk,Java Native Interface,什么是env?请不要说指针。但它指的是什么?我们正在使用(*env)->NewStringUTF,即使没有初始化。这怎么可能呢?JNIEnv正在由VM传递到您的函数中。它本质上是指向函数指针数组的指针。(还有更多,但函数指针是有趣的一点。) 如果已启用,VM将传入指向不同函数数组的指针,这些函数在调用基函数之前执行扩展检查 与VM关联的每个线程都有自己的JNIEnv。始终使用传递到方法中的方法,不要将其存储在全局或静态本地 JNIEXPORT jstring JNICALL Java_com_m
env
?请不要说指针。但它指的是什么?我们正在使用(*env)->NewStringUTF
,即使没有初始化。这怎么可能呢?JNIEnv
正在由VM传递到您的函数中。它本质上是指向函数指针数组的指针。(还有更多,但函数指针是有趣的一点。)
如果已启用,VM将传入指向不同函数数组的指针,这些函数在调用基函数之前执行扩展检查
与VM关联的每个线程都有自己的JNIEnv
。始终使用传递到方法中的方法,不要将其存储在全局或静态本地
JNIEXPORT jstring JNICALL Java_com_marakana_NativeLib_hello (JNIEnv * env, jobject obj)
{
return (*env)->NewStringUTF(env, "Hello World!");
}