首先查看屏幕刷新率,Frame泳道下的Display Vsync子泳道会显示对应时间段的屏幕刷新率,支持对框选的时间段内的vsync进行分布统计,如下图中,屏幕刷新率为119Hz。

然后查看应用主线程请求绘制渲染的周期,Trace中找到应用包名的泳道,通过H:SendCommands关键字查看应用发送的渲染请求,其中相邻的两个transactionFlag的时间间距,就是主线程请求绘制渲染的周期。

正常情况下主线程请求绘制渲染周期(如8.3ms)会与屏幕刷新率(如120Hz)对应,但如果主线程在执行耗时操作时,会导致两次请求绘制渲染的时间间隔变长,在120Hz屏幕刷新率下应用绘制的帧率少于120,出现卡顿、丢帧的情况。
I C03951/com.example.myapplication/InputKeyFlow: [(100002:100002:scope)] Pan accepted, tag = Stack
通过Trace发现只能看到多次状态变量刷新,在应用收到手指离开屏幕的事件处,仅更新页面偏移状态,没有调用animateTo启动动画:

