JPDA MethodEntryEvent导致app运行速度很慢

时间:2018-01-05 12:51:27

标签: java android debugging jdi jpda

我正在尝试捕获在任何Android应用程序中进行的所有方法调用。为此,我使用JDI为应用程序的每个正在运行的线程注册MethodEntryRequest。我成功地做到了这一点,但我面临的问题是应用变得非常慢。所以我想知道我在实施中是否做错了。我正在添加我的代码,我首先注册ClassPreparedRequest以通过app进程捕获每个类的加载,并且我使用threadfilter注册MethodEntryRequest以获取导致类加载的线程。

 if(!traceMap.keySet().contains(event.thread()))
    {
        EventRequestManager mgr = vm.eventRequestManager();
        MethodEntryRequest menr = mgr.createMethodEntryRequest();
        menr.setSuspendPolicy(EventRequest.SUSPEND_NONE);
        menr.addThreadFilter(event.thread());
        menr.enable();
    }

注册ClassPreparedRequest的代码是

    ClassPrepareRequest cpr = mgr.createClassPrepareRequest();        
    cpr.addClassFilter("com.example.*");
    cpr.setSuspendPolicy(EventRequest.SUSPEND_NONE);
    cpr.enable();  

0 个答案:

没有答案