0%

simpleperf数据采集

通过 simpleperf 采集的

1
2
3
4
5
- adb push ${NDK_HOME}/simpleperf/bin/android/arm64/simpleperf /data/local/tmp
- adb shell chmod a+x /data/local/tmp/simpleperf
- adb shell /data/local/tmp/simpleperf record -o /data/local/tmp/perf.data -g --app com.autonavi.minimap --duration 120
- adb pull /data/local/tmp/perf.data
- python ${NDK_HOME}/simpleperf/report_sample.py --symfs ../binary_cache ./perf.data > ./backgroud2mins.perf

p.s. binary_cache 为测试包对应的符号库,层级结构如下:
lQLPJwrQWX11rH7NAV3NAo6wWvIyUl2DxWcEflXvLgCeAA_654_349.png
其中路径需要根据 adb shell pm path com.autonavi.minimap 返回的结果确定
lQLPJw5Uv9PJjH44zQLQsIPh81-41iInBH5V7y1AEgA_720_56.png
image.png
binary_cache目录需要在本地创建,然后将带符号的so放入对应的目录中。这是因为高德打到apk中的so是不带符号的,在执行完simpleperf命令后解析时就会报错。

image.png

还有一种方式时打包apk的时候将带符号的so直接带入,这样执行完simpleperf就可以直接解析。

perf文件解析网站
https://www.speedscope.app/