Bag*_*ers 1 java java-native-interface android android-ndk
我最近正在做很多JNI工作,并且想监视(或至少转储)jni globalref池的内容。Google尚未提供任何帮助。
我注意到,如果您确实触发了globalref-pool耗尽,它会列出池中的前10个项目,因此我希望可以通过某种方法来解决。
在Dalvik VM中,全局和(对于当前线程)本地ref表通过dalvik / vm / Jni.cpp打印到日志dvmDumpJniReferenceTables()中。 这是从称为Dalvik_dalvik_system_VMDebug_dumpReferenceTables()在达尔维克/ VM /天然的/ dalvik_system_VMDebug.cpp,这是从通过Java源代码访问dalvik.system.VMDebug.dumpReferenceTables() 方法。
批准的调用android.os.Debug.dumpReferenceTables() 方法是通过标记为的方法@hide,即它不是公共API的一部分。因此,您应该通过反射来调用它。
我不知道这在ART下有什么作用。