我目前正在做一个项目,旨在找出系统在 android UI 上的一系列用户交互背后做了什么。例如,如果用户单击 Facebook Messenger 中的发送按钮,则测量的此类操作的响应时间为 1.2 秒。我的目标是弄清楚 1.2 秒是由什么组成的。我的朋友建议我看看“Systrace”。
但是,当我在我的 HTC one M8 上尝试 systrace 时,我遇到了一些问题:首先,打开 /sys/kernel/debug/tracing/options/overwrite 时出错 - 没有这样的文件或目录。我通过在http://opensourceforu.com/2010/11/kernel-tracing-with-ftrace-part-1/和 mount -t debugfs none /sys/kernel/debug之后建立内核支持解决了这个问题。然后我可以找到跟踪目录。此外,我在 Ramdisk 中的 default.prop 文件中设置了 ro.debuggable=1 并将 boot.img 刻录到我的手机中。
现在又遇到一个问题:当我运行-python systrace.py --time=10 -o mynewtrace.html sched gfx view wm时,弹出如下错误(19):error truncating /sys/kernel/debug/tracing/set_ftrace_filter : 没有这样的设备 (19)。我不知道我为 systrace 建立内核支持的方式是否不正确或是否缺少任何东西。
有人可以帮我解决这个问题吗?