平时抓取trace的方式有以下三种:
- 1、atrace命令抓取,adb pull到pc上,使用perfetto网站打开
- 2、使用perfetto命令抓取,可以直接使用命令上加option,也可通过执行config.pbtx文件方式
- 3、使用android_sdk/platform_tools目录下的systrace.py工具抓取,使用chrome的chrome://tracing/工具打开 但是以上三种方式,其实都是需要先通过android设备执行命令,抓取到存放在android设备上,然后pc adb pull拿到trace文件,最后再通过浏览器打开,步骤挺费时间的。如果需要经常性分析时,其实很不方便的。如果直接通过浏览器点击抓取,然后抓取完就打开,这样子会省很多时间。
验证,直接chrome浏览器打开ui.perfetto.dev/#!,然后选择Record new trace:
Select platform 选择Android
Select transport 选择WebUsb
然后插上Android实体设备(非模拟器)type/usb线,从开发者选项打开adb:
如图,adb和文件传输都打开了:
提示无法连接:
这时候,我们浏览器停留在上面的perfetto网页上,拔掉手机数据线,重新插上,会弹出登录弹窗,选择同意,并且通过授权:
点击登录,我这里设备可以使用指纹,如果没有指纹的可以是输入密码登录即可:
然后,Select target device下面各项检查都正确了,没有报错了:
好,通过CPU、GPU、Android apps & svcs这些tab里面,选择需要的配置,尝试抓取下微信朋友圈滑动的trace。
我们配置了15s的抓取时长,点击start tracing,然后滑动朋友圈,如下图,Tracing session下面就展示抓取的进度了:
抓取完成后会自动打开trace,就可以查看com.tencent.mm进程朋友圈的滑动trace了:
模拟器无法直接浏览器抓取的方法见大佬的分享:性能优化:手把手教你perfetto抓取直接用chrome浏览器踩坑笔记