问题描述
我正在尝试在运行自动化测试时捕获 Android systrace。因为我不知道测试的持续时间,所以我不能使用参数 "-t" 。
我使用以下命令进行跟踪 -
python systrace.py -a com.myapp -o testauto.html
手动停止我们需要按回车键的跟踪。我该怎么做 ? 如何停止捕获跟踪以便它自动创建跟踪文件?
解决方法
systrace.py 是手动运行的,所以如果你想自动化它,你可以使用底层的 atrace
命令。有点复杂,所以我会在最后加上步骤。
我强烈建议您查看 Perfetto 命令行工具。您可以在此处找到更详细的文档:https://perfetto.dev/docs/quickstart/android-tracing。
TLDR:
adb shell perfetto -o /data/misc/perfetto-traces/trace_file.pftrace -b 32mb <add_list_of_categories>
然后发送终止信号(即Ctrl+C)停止跟踪。根据您的主机操作系统实现自动化应该很简单。
另一个值得研究的资源是用于 CI/CD 集成的 AndroidX Benchmark 库:https://developer.android.com/studio/profile/benchmark。
--附录--
直接运行 atrace
:
adb shell /system/bin/atrace -z -b <buffer_size_in_kb> -a <app_name> -o /data/local/tmp/test.trace --async_start
然后停止跟踪:
adb shell /system/bin/atrace -z -a <app_name> -o /data/local/tmp/test.trace0 --async_stop
最后你需要合并文件:
cat test.trace test.trace0 > combined.trace