APP测试帧率

帧率概念

影响点:画面流畅度

测试角度:是否存在卡顿现象。

标准数据

60fps作为衡量标准,即要求每一帧刷新的时间小于16ms,这样才能保证滑动中平滑的流畅度。

FPS:每秒显示的帧数,每一帧都是静止的画面。

数据采集

设置-开发者选项-GPU呈现模式分析
在这里插入图片描述
命令:

adb shell dumpsys gfxinfo <包名> > fps.txt 

路径:C:\Users\Administrator\fps.txt
在这里插入图片描述
将数据拷贝到Excel,并绘制成折线图观察,是否有超出16ms(或其他标准fps)。

数据概念:

Draw: 表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。

Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长

Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。

Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧。

测试策略与测试场景

测试方向

  • 界面过度绘制
  • 屏幕滑动帧速率
  • 屏幕滑动平滑度

帧率优化方向

手机的CPU处理速率、屏幕尺寸、内存及显存的大小都影响着APP帧率的大小,这些因素在一定程度上约束着准备数据和数据传到屏幕的时间

GUI软件架构在一定程度上也影响着应用帧率的大小。在同等机器环境下,除去CPU、屏幕尺寸及系统GUI等固有数据传输耗时,要提升应用FPS就要减少视图渲染的时间

通过以下几种方式可以有效提升应用FPS:
1、尽量不要在刷新时做耗时操作,例如准备数据,创建图片,图片变换等,数据和图片都应该在之前就加载到内存中,图片变换用canvas的变换来实现。
2、同一个界面中多个动画重叠出现时,尽量将动画的刷新过程统一刷新,避免频繁的invalidate,尤其是多个动画有时序上的关系时更应该统一。
3、尽量使用带有参数的invalidate来刷新,这样可以减少很多运算量。

参考文章:https://www.zhihu.com/question/288980837

猜你喜欢

转载自blog.csdn.net/LittleGirl_orBoy/article/details/108451111