无论是手机端还是PC端,画面的流畅度一直被用户视为衡量应用视觉体验的重要标准。而对开发者来说,帧率(FPS) 通常作为衡量应用是否流畅的标准。

一帧就是一副静止的画面,连续的帧就形成动画,我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的数量,也可以理解为图形处理器每秒钟能够刷新几次。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。

我们看到的早期动画片其实就是用一张张手绘图片连贯翻页制作而成的。当一张张独立图片切换速度足够快时,我们的眼睛就会以为这是连续的动作,这个就是 视觉暂留现象

FPS即Frames Per Second(每秒显示的帧数),用于测量显示帧数的度量。帧数为0说明页面处于静止,只要画面动起来,这个帧数就会有变化,看一张图直观感受一下:

通过上图我们能看出FPS值的大小对画面流畅度的影响,每一帧都是静止的图像,快速连续地显示帧便形成了运动的假象,因此高帧率可以得到更流畅、更逼真的动画。

何为帧延迟?卡顿如何造成的?

卡顿本质其实就是操作过程中的丢帧,本来一秒中画面需要更新 60 帧,但是如果这期间只更新了 30 帧 , 那么在用户看来就是丢帧了 , 主观感觉就是卡了,尤其是帧率波动,用户的感知会更明显。引起丢帧的原因非常多,有硬件层面的 , 有软件层面的 , 也有 App 自身的问题。帧延迟的高低可以通过帧时间(Frame Time)来判定

Android FPS测试

adb 命令获取

1、环境准备

将设备连接到PC,输入adb devices可以查看到设备信息。

并且在设置->开发者选项->监控->GPU呈现模式分析->勾选上 In adb shell dumpsys gfxinfo

在PC上打开cmd窗口,启动待测应用。

2、执行测试

使用如下命令可以获取设备当前打开的应用包名。

adb shell dumpsys window|grep mCurrentFocusmCurrentFocus=Window{e633a66 u0 com.youku.phone/com.youku.v2.HomePageEntry}

在App上执行操作,操作完成之后。输入命令 adb shell dumpsys gfxinfo {app的包名} >{PC路径}FPS.txt

adb shell dumpsys gfxinfo com.youku.phone   > C:\Users\Shuqing\Desktop\fps.txt

在PC导出的路径可以看到生成的数据文件fps.txt

3、数据分析

打开fps.txt可以看到采集的原始数据如下所示:

Total frames rendered: 2465  //本次dump搜集了2465帧的信息
Janky frames: 2451 (99.43%)  //有2451帧超过了16ms.卡帧率是99.43%Draw Prepare Process Execute16.62    0.43    3.89    19.7425.26  0.14    3.29    21.8417.27  1.03    3.01    24.088.01   1.01    5.12    17.5519.52  0.73    4.53    18.069.60   1.28    5.19    18.4516.87  0.75    9.79    15.4124.72  0.75    3.31    17.0017.46  2.38    50.00   21.056.87   0.12    4.12    11.9038.84  0.21    5.28    16.354.07   0.59    3.01    18.464.72   0.54    3.36    22.4910.63  0.81    2.85    20.2320.56  0.63    3.68    22.1111.54  0.79    2.47    20.6920.56  1.58    3.09    20.7412.42  0.58    3.49    22.6920.81  1.65    2.34    20.962.11   0.89    3.36    19.8543.35  50.00   50.00   11.9250.00  0.22    31.40   15.0550.00  0.11    5.78    18.19
  • Draw: 表示在Java中创建显示列表部分中OnDraw()方法占用的时间。(单位:毫秒)
  • Prepared:代表的时间就是UI Thread传送数据给Render Thread所用的时间。
  • Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长
  • Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。
  • Draw +Prepared+ Process + Execute = 完整显示一帧的时间 ,这个时间要小于16ms才能保证每秒60帧。

iOS 帧率测试

通过使用instrumentscore animation工具,浏览网页或加载动画,查看帧数。注意:Xcode 9之后打开CoreAnimation选项(必须真机) 一般而言,当用户操作时,如果fps帧数小于40,则说明存在卡顿的情形。

点击链接加入群聊【软件测试交流群】:https://jq.qq.com/?_wv=1027&k=NTVfaHyr

APP性能测试之帧率测试相关推荐

  1. app性能测试之Loadrunner

    app性能测试之Loadrunner 简介:对于手机端的app,怎样使用loadrunner测试?loadrunner12的版本是支持app的性能测试的,但是并发用户数的设置有限,所以大家通常是这么做 ...

  2. Android APP性能及专项测试(个人整理)

    Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消耗 2.内存泄露 3.电量功耗 4 ...

  3. Android APP性能及专项测试(学习笔记)

    1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消耗 2.内存泄露 ...

  4. Android APP性能及专项测试

    Android篇 1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消 ...

  5. 【转】Android APP性能及专项测试(个人整理)

    转载地址:https://www.zybuluo.com/defias/note/592309 Android篇 1. 性能测试 Android性能测试分为两类:  1.一类为rom版本(系统)的性能 ...

  6. app专项测试之兼容性测试

    文章末尾给大家留下了大量的福利 前言 昨天给大家唠了唠怎么测试app,那么今天笔者还想和大家来唠唠app的专项测试之兼容性测试,废话呢笔者就不多说了,直接进入主题. 1.APP兼容性测试认识 随着AP ...

  7. App性能测试之流量监控

    下面对流量监控进行分析: 获取进程ID指令 adb shell "ps | grep 包名" 获取进程ID流量 adb shell cat /proc/pid/net/dev pi ...

  8. 【学习笔记】APP性能---使用Perfdog测试APP和小程序的性能

    1.PerfDog介绍 腾讯推出的移动全平台性能测试分析专家--- PerfDog性能狗. 移动全平台iOS/Android性能测试.分析工具平台.快速定位分析性能问题,提升APP应用及游戏性能和品质 ...

  9. APP专项测试之耗电量测试

    一.耗电量测试分析 相对于PC端来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要.Android的很多特性都比较耗电(如屏幕.GPS.sensor传感器.唤醒机制.CPU.连网等的使用 ...

  10. APP 专项测试之兼容性测试

    1.APP 兼容性测试认识 随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节. APP 兼容性测 ...

最新文章

  1. MySQL 语句整理 2019-5-3
  2. MySQL索引 专题
  3. java如何分页_java中分页的实现
  4. mysql索引 聚集索引_MySql数据库索引-聚集索引和辅助索引
  5. 8086除法指令DIV,IDIV
  6. 第一百零五期:5年前,跳槽涨薪,你笑了,5年后,跳槽降薪,你慌了!
  7. 查看pod网络范围_K8S Pod 内抓包快速定位网络问题
  8. java mybatis分页查询语句_mybatis分页查询的实现(一)
  9. 微信分享#后面被截断,导致安卓分享失效
  10. 局域网监控软件:让员工上网行为规范形成自觉
  11. 禁不住诱惑?不可描述的应用之下暗藏巨大风险
  12. 6s的充电电流怎么测试软件,用数字万用表测量手机充电器的充电电流的方法和问题...
  13. 大一上:英语复习:汉译英(新视野大学英语读写教程1:第一、三、四、六单元分句+注释)
  14. 富士胶片展示透明投影膜、CMF表面装饰材料及HydroAg+抗菌技术
  15. 【京东】商品评价采集
  16. 爪哇国新游记之十七----肺腑之言
  17. switch语句 计算个人所得税和税后收入
  18. Ant Design中的表格中key的处理
  19. js电影票预订座位网页js特效
  20. 【ECharts】 # ECharts入门学习

热门文章

  1. JSON数组转LIST集合的两种方法
  2. python数据结构与算法 pdf_『python核心编程pdf』数据结构与算法 Python语言描述
  3. 解决Visual Studio 2019未能从“https://www.nuget.org/api/v2/package..“下载包问题
  4. linux每天定时开关机,如何实现ubuntu每天定时关机
  5. Java初学01:学习路线,韩顺平java教程百度云
  6. matlab编程椅子放平问题,数学模型程序代码Matlab-姜启源-第一章-建立数学模型.docx...
  7. SQLServer2016安装教程
  8. 需求分析说明书SRS
  9. Kepware配置OPC UA实现匿名or用户名/密码连接
  10. 计算机网络技术与实验清华大学,清华大学计算机网络实验指示书.doc