Android JNI本地引用表,转储当前状态

Pav*_*l P 3 c++ java-native-interface android

任何Android JNI开发人员都应该熟悉logcat中的这条精彩消息.我的问题是:如何告诉VM转储当前表状态?我需要它来进行调试,以确保退出时的本机线程没有未完成的本地引用.

Jon*_*Boy 11

完全归功于Pavel,但我认为其他人可能会喜欢示例代码:

jclass vm_class = env->FindClass("dalvik/system/VMDebug");
jmethodID dump_mid = env->GetStaticMethodID( vm_class, "dumpReferenceTables", "()V" );
env->CallStaticVoidMethod( vm_class, dump_mid );
Run Code Online (Sandbox Code Playgroud)


Pav*_*l P 6

如果有人需要做类似的事情,您可以使用 dalvik.system.VMDebug 中的 dumpReferenceTables