解决Android性能分析工具systrace使用时找不到section name(或者叫找不到tag)

一、我们先说可能的原因

如果找不到tag或者叫section name,有可能是
①beginSection和endSection没有成对出现
②命令行设置了-t N | --time=N,但是这个时间段没有执行tag所在的那段功能代码
比如说在Application中的onCreate中设置了tag,命令行中 -t 5(跟踪设备5秒),如果我们应用活着的时候,执行了这段命令,生成的html中肯定是找不到我们设置的tag的;再者就是如果应用是冷启动,命令行中还没提示Starting tracing… 这时App已经启动完成了,这也是不行的。
③检查一下App的包名是否写错了
④实在不行换个手机试一下,有的手机需要在开发者选项中打开trace的功能。

二、我的步骤

1.先在代码中设置tag,beginSection后别忘了endSection
TraceCompat.beginSection(“gogogo”);
TraceCompat.endSection();
2.连接真机或者模拟器运行代码(我的模拟器试了试也可以抓取到tag信息)
3.将程序杀死(如果不是对app启动进行的监控,这一步可以省略)
4.用终端cd到systrace.py所在目录
5.终端执行python systrace.py -a 包名 sched freq idle am wm gfx view binder_driver hal dalvik camera input res
在这里插入图片描述
这里我没有指定时间,如果未指定时间,则 systrace 会提示您通过从命令行按 Enter 键来结束跟踪。
6.在终端提示“Starting tracing (stop with enter)”后,再在手机或者模拟器上打开app(如果不是对app启动进行监控,这一步就是执行你要监控的那个操作,比方说监控页面跳转,就执行页面跳转的操作),主页面加载完成后,点击键盘Enter。
在这里插入图片描述
7.打开trace.html
搜索之前设置的tag 或者叫section name ,我的叫gogogo
在这里插入图片描述

注意

1.如果要在跟踪输出中查看任务的名称,则必须在命令参数中包含sched
2.如果执行命令后报一句
These categories are unavailable: ***说明当前设备不支持这个类别或选项
查看当前设备所支持的类别或选项:
python systrace.py --list-categories

以上就是详细的步骤,如果有问题可以留言

参考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章