我最近开始开发一款同时具有 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/