android - 如何在 Android 上使用 startMethodTracing API?

标签 android trace

我最近开始开发一款同时具有 Java 和 native 组件。我正在尝试为两者生成跟踪信息 使用 Debug.startMethodTracing("myapp") 的组件和 Debug.startNativeTracing()交替。然而,两者的行为都出乎意料。

当我使用 Debug.startMethodTracing("myapp") 时, 我可以看到一个文件 /sdcard/myapp.trace正在创建,但无论我运行我的应用程序多长时间,它总是空的。当我使用 Debug.startNativeTracing()并使用 -trace <tracename> 启动模拟器切换时,我看到一条消息说“Trace started”,但是当我尝试运行我的应用程序时, 模拟器崩溃。

我在这里遗漏了什么明显的东西吗?我该如何调试这个问题?

最佳答案

当我遇到这种情况时,那是因为我的启动/停止对不匹配。例如,如果您开始方法跟踪但从未停止,我认为 Android 根本不会将缓冲的跟踪信息写入文件。同样,如果您在中间有一个额外的停止,或者从未开始等,您将不会获得预期的结果。

除此之外,跟踪方法对我来说效果很好。

另一方面, native 跟踪似乎不受支持(仍然),因为当我尝试将 native 跟踪结果加载到 traceview 时出现错误“Qemu 跟踪文件尚不支持”。 (Google 对此有何评论?)

  • 克里斯

关于android - 如何在 Android 上使用 startMethodTracing API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871190/

相关文章:

google-app-engine - 如何将自定义跨度添加到 Trace 中

azure - 从应用程序洞察中删除跟踪

android manifestPlaceholders - 如何使用 bool 值

java - 对资源名称的限制或如何进行通用国际化

android - 使用 Android Studio 构建的应用程序 Apk 比使用 Eclipse 构建的应用程序 Apk 大

机器人 "close" Activity

ubuntu - bpftrace 单行命令在 wsl ubuntu 中不起作用

Python,记住文件的默认路径

c# - .Net TraceSource/TraceListener 框架是否有类似于 log4net 的 Formatters 的东西?

java - 所有 java 类和对象都消失了(eclipse、android SDK)