如何在Android上使用startMethodTracing API?

5
我最近开始开发一个同时包含Java和本地组件的应用程序。我尝试交替使用Debug.startMethodTracing("myapp")Debug.startNativeTracing()来为两个组件生成跟踪信息。但是,无论如何都出现了意外情况。
当我使用Debug.startMethodTracing("myapp")时,我可以看到一个名为/sdcard/myapp.trace的文件被创建,但不管我运行我的应用程序多久,它始终为空。当我使用Debug.startNativeTracing()并使用-trace <tracename>开关启动模拟器时,我会看到一条消息"Trace started",但当我尝试运行我的应用程序时,模拟器崩溃了。
请问我是否遗漏了一些明显的东西?我该如何调试这个问题?
1个回答

5
当我遇到这种情况时,通常是由于开始/结束对不匹配引起的。例如,如果您开始方法跟踪但从未停止,那么Android可能根本不会将缓冲的跟踪信息写入文件中。同样地,如果在中间有额外的停止或从未开始等问题,也无法得到期望的结果。
除此之外,方法跟踪对我来说一直都很好用。
另一方面,本地跟踪似乎仍然不受支持,因为当我尝试将本地跟踪结果加载到traceview中时,会出现错误“Qemu trace files not supported yet”。(Google对此有何评论吗?)
- Kris

非常重要的是,如果您在调用stop之前仅finish()您的活动,则跟踪不会停止,您将无法获得完整的文件。 - user153275

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接