常见丢帧问题
下面列举了一些常见的丢帧问题以及对应的Trace,以及给出了一些优化方案,便于开发者遇到类似的问题,访问识别和定位。
自定义动画丢帧问题
在播放动画或者生成动画时,画面产生停滞而导致帧率过低的现象,称为动画丢帧。
播放动画时,系统需要在一个刷新周期内完成动画变化曲线的计算,完成组件布局绘制等操作。建议使用系统提供的动画接口,只需设置曲线类型、终点位置、时长等信息,就能够满足常用的动画功能,减少UI主线程的负载。
下面使用了自定义动画,动画曲线计算过程很容易引起UI线程高负载,易导致丢帧。
使用Frame Profiler录制Trace,可以看到动画帧率只有63fps左右,而当前设备是支持的设备刷新率是120Hz。
建议开发者通过系统提供的属性动效API实现上述动效功能,使用属性动画或者显式动画
使用Frame Profiler录制优化后的Trace,可以看到动画帧率有了较大的提升,达到了116.9fps。