赞
踩
解压android trace抓取相关文件
找到config.pbtx
文件,连接手机push进去
# push config.pbtx ,/data/local/tmp/为自定义push到的目录
adb push config.pbtx /data/local/tmp/
adb shell
# 抓取trace, /data/local/tmp/perfetto-traces/为自定义输出目录
cat /data/local/tmp/config.pbtx | perfetto --txt -c - -o /data/local/tmp/perfetto-traces/trace.perfetto-trace
# 抓到后你所需要的内容后 ctrl+c中断,导出trace文件
adb pull /data/local/tmp/perfetto-traces/trace.perfetto-trace
打开网站 https://ui.perfetto.dev/
把抓取到的trace拖到网站中
如果trace文件过大则会有以下提示
这时可以使用按上述命令操作
# 下载trace_processor
curl -LO https://get.perfetto.dev/trace_processor
# 添加权限
chmod +x ./trace_processor
# 运行trace_processor /path/to/trace.pftrace为文件路径
trace_processor --httpd /path/to/trace.pftrace
运行完成后,再将文件拖到网站 https://ui.perfetto.dev/,即可正常打开。
或者直接使用压缩文件android trace文件的抓取与查看方法中的trace_processor_shell
chmod +x ./trace_processor_shell
./trace_processor_shell --full-sort -D 【文件路径】
加载完成后,打开网站 https://ui.perfetto.dev/,如下图选择选项
adb shell ps -A | grep [应用包名]
adb shell debuggerd [应用pid] > backtrace.txt
我们主要关注抓取到的文件中的backtrace部分。这里我们的backtrace抓的是一个卡在黑屏的应用(com.xd.ro.roapk),这里可以看到应用卡在了 Vulkan 图形渲染。
运行以下命令
adb shell
# /data/local/tmp/perf.data为自定义生成的文件路径
simpleperf record -o /data/local/tmp/perf.data -e task-clock:u -f 1000 -g --duration 1200 --log info --app [应用包名]
# 复现后ctrl+c停止抓取命令的运行
# 导出文件
adb pull /data/local/tmp/perf.data
在NDK目录下,如: /Android/Sdk/ndk/26.1.10909125/simpleperf 下执行命令:
./gecko_profile_generator.py -i perf.data | gzip > perf_data.json.gz
打开网站https://profiler.firefox.com/,把生成的json.gz文件拖动到这个网站即可。
加载完成后,可以选择火焰图或者栈图,可以帮助我们查看对应的堆栈信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。