Android方法呼叫跟踪

时间:2012-06-04 16:18:54

标签: java android compiler-construction profiling

每次进入和退出方法时,我都在改变代码以打印日志消息。当我认为可能有一些Eclipse的功能或插件可以跟踪它并给我看。毕竟,这是java编译器手头的信息。

我需要的是看到顺序,其中每个方法都被调用并返回。

它应该打印方法名称和它上面的所有堆栈,这样我就可以知道是谁调用了。

(可选),如果它打印输入和返回的时间以及差异,这将是分析的好信息。

我记得过去尝试使用TraceView,我不知道它是否是答案,但我清楚地记得那里有太多的信息,我无法清楚地了解发生了什么。
如果有人知道如何正确使用它来获取我需要的信息,那也会很棒。

更新
我很难使用TraceView和他的同伴dmtracedump。我做了一些我不应该做的事情,我搜索了dmtracedump代码源并查看它 这是产生我得到的错误消息的代码。

TraceData data1;
DataKeys* dataKeys = parseDataKeys(&data1, gOptions.traceFileName,
                                   &sumThreadTime);
if (dataKeys == NULL) {
    fprintf(stderr, "Cannot read trace.\n");
    exit(1);
}

但我不知道如何修复跟踪文件。
它由Debug.startMethodTracing("tracefile");

生成

我希望有一种方法可以告诉Java编译器打印每个方法调用。我现在非常沮丧。

2 个答案:

答案 0 :(得分:2)

我建议您使用Google为我们提供的the absolutely excellent tool TraceView而不是实施您自己的分析服务!

如果您在使用TraceView时遇到问题,则只能使用以下命令对代码的某些部分进行分析:

// start tracing to "/sdcard/calc.trace"
Debug.startMethodTracing("calc");
// ...
// stop tracing
Debug.stopMethodTracing();

我自己用过它,它告诉你几乎所有你需要知道的分析。

答案 1 :(得分:0)

我找到了一种自己修改文件的方法,可以在我的源代码中的任何地方插入和删除日志消息。

我是在this post

中写的