2023-01-20 281
任何Android JNI开发人员都应熟悉LogCat中的此精彩信息.我的问题是:如何告诉VM转储当前表状态?我需要它用于调试目的,以确保出口的本机线程没有出色的本地参考.
如果有人需要做类似的事情,您可以使用
dalvik.system.vmdebug
的dmplyReferencetables
Pavel的全部信用,但我认为其他人可能会喜欢示例代码:
jclass vm_class= env->FindClass("dalvik/system/VMDebug");
jmethodID dump_mid = env->GetStaticMethodID( vm_class, "dumpReferenceTables", "()V" );
env->CallStaticVoidMethod( vm_class, dump_mid );
我在下面尝试代码.
try {
Class cls = Class.forName("android.os.Debug");
Method method = cls.getDeclaredMethod("dumpReferenceTables");
Constructor con= cls.getDeclaredConstructor();
con.setAccessible(true);
method.invoke(con.newInstance());
//call method dumpReferenceTables of dalvik.system.VMDebug
//to dump reference table at last.
}
catch(Exception e){
Log.i(TAG,"exception="+e.getMessage());
}
i/art(28913):全局参考表转储:
i/art(28913):最后10个条目(共267个):
i/art(28913):266:0x12e340c0 java.lang.ref.weakreference
i/art(28913):265:0x12e34060 java.lang.ref.weakreference
i/art(28913):264:0x12e24220 java.lang.ref.weakreference
i/art(28913):263:0xa1ba5000字节[](2710656元素)
i/art(28913):262:0xa284d000 byte [](30276元素)
i/art(28913):261:0xA2855000字节[](19312元素)
i/art(28913):260:0xa1e3b000 byte [](6529728元素)
i/art(28913):259:0x12e1ca60 android.view.accessibility.Accessmanager $ 1
i/art(28913):258:0x12df2c70 android.content.contentprovider $ transport
i/art(28913):257:0x12ED4040 java.lang.ref.weakreference
i/art(28913):摘要:
i/art(28913):android.opengl.eglcontext(2个唯一实例)
i/art(28913):1 of android.hardware.display.displaymanagerglobal $ displayManagerCallback
i/art(28913):java.lang.class(172个唯一实例)
223
i/art(28913):android.opengl.egldisplay(2个唯一实例)
i/art(28913):java.lang.threadgroup(2个唯一实例)
i/art(28913):android.opengl.eglsurface(2个唯一实例)
i/art(28913):dalvik.system.vmruntime
的1
i/art(28913):android.content.contentprovider $ transport
i/art(28913):dalvik.system.pathclassloader
的1
i/art(28913):1 of android.view.Accessibility.Accessmanager $ 1
i/art(28913):1 of android.app.activitythread $ applicationThread
i/art(28913):2个字节[](100个元素)(2个唯一实例)
i/art(28913):7个字节[](8192个元素)(7个唯一实例)
i/art(28913):1 byte [](19312个元素)
i/art(28913):1个字节[](30276元素)
i/art(28913):1个字节[](2710656元素)
i/art(28913):1个字节[](6529728元素)
i/art(28913):java.lang.string(2个独特实例)
2
i/art(28913):java.lang.ref.weakreference(15个独特实例)
15
以上所述是小编给大家介绍的Android JNI本地参考表,转储当前状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26009.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态