Android 方法调用跟踪

问题描述 投票:0回答:2

我正在更改代码以在每次进入和退出方法时打印日志消息。当我想到 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 编译器打印每个方法调用。我现在很沮丧。

java android profiling
2个回答
2
投票

我建议不要实现自己的分析服务,而是使用 Google 为我们提供的 绝对优秀的工具 TraceView

如果您在使用 TraceView 时遇到问题,您只能使用以下方法分析代码的某些部分:

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

我自己使用过它,它告诉您分析所需了解的所有信息。


0
投票

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

我写在这篇文章

© www.soinside.com 2019 - 2024. All rights reserved.