微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从我的自动化脚本中捕获 Android Systrace

如何解决如何从我的自动化脚本中捕获 Android Systrace

我正在尝试在运行自动化测试时捕获 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。