如何查看Android本机代码分析?

Dav*_* R. 3 android profiling qemu android-emulator

我使用./emulator -trace profile -avd emulator_15启动了我的模拟器。然后,我将跟踪文件跟踪到〜/ .android / avd / rodgers_emulator_15.avd / traces / profile,其中有六个文件:qtrace.bb,qtrace.exc,qtrace.insn,qtrace.method,qtrace.pid,qtrace 。静态的。我不知道该如何处理这些文件。我已经尝试了所有文件的dmtracedump和traceview,但是似乎都没有生成任何我可以做的输出。

如何查看Android上本机方法调用所花费的时间比例?

fad*_*den 5

您需要使用tracedmdump来转换输出。这是build/envsetup.sh完整的Android源代码中定义的Shell函数。如果您使用的是SDK,而不是从一棵完整的树中构建,我不确定这是否可行。

(如果您没有源,并且想看一下tracedmdump函数,可以在这里查看。)

如果你用过emulator -trace profile,你会跑的tracedmdump profile。这将挖掘各种二进制文件,以检索符号信息并将其与跟踪数据相关联,生成HTML摘要和与traceview兼容的跟踪文件。

值得注意的是,在启用概要分析的情况下,VM将执行得更慢(解释器在每次方法调用和返回时都有开销,并且在较慢的“调试”解释器中运行),而本机代码继续全速运行,因此您可以下结论时要小心。

一般评论:不要忘记使用F9或方法调用之一来启动/停止跟踪-该-trace标记仅启用该功能。