app专项之流畅度测试

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-28
1.FrameTime:单帧渲染耗时

2.FPS:帧率

- 平均帧率:1s平均画面刷新次数

- 瞬时帧率:单帧渲染耗时换算出来的实时帧率

3.Jank:卡顿

    同时满足以下两条件,则认为是一次卡顿Jank.

a)当前帧耗时>前三帧平均耗时2倍;

b)当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)

4.BigJank:严重卡顿

    同时满足以下两条件,则认为是一次严重卡顿BigJank.

a)当前帧耗时>前三帧平均耗时2倍。

b)当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)

5.PerfDog Stutter:卡顿率

定义: 测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长

计算思路 :基于PerfDog Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。

Stutter(卡顿率)=∑Jank time / Time

说明: Jank为卡顿次数,Stutter为卡顿率,Jank和Stutter趋势有一致性,但并非完全线性,因为每次Jank卡顿严重性是不一样的。同时也说明了,没有Jank卡顿出现,自然也就卡顿率是0了。

1.帧率过低:

    电影帧率(18-24),一般是24帧。电影帧单帧耗时:1000ms/24≈41.67ms。电影帧率是一个临界点。低于这个帧率,人眼基本能感觉画面不连续性

2.跳帧:

    视觉预期帧率,用户潜意识里认为下帧也应该是当前帧率刷新比如一直60帧,用户潜意识里认为下帧也应该是60帧率刷新一直25帧,用户潜意识里认为下帧也应该是25帧率刷新如果是60帧一下跳变为25帧,扰乱用户视觉惯性。

1.FPS:不应该低于24帧

2.Jank:不应该大于0

3.BigJank:不应该大于0

4.Stutter:不应该大于0%

    APP也需要关注FPS、Jank及卡顿率。只是需要区分使用场景,如:

1.静态页面窗口:

    只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。

2.有滚动动画页面窗口:

    只需关注FPS,FPS处于合适值即可,无需高频刷新。

3.快速滑动页面窗口:

    需要关注FPS、Jank及卡顿率。手机交互灵敏度就是来源于此,Android系统才出黄油计划Jank。一般滑动状态下,帧率越高越好,Jank越小越好。

4.播放视频页面窗口:

    需要关注FPS、 Jank及卡顿率,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。

    本文中的Jank、BigJank、Stutter的概念都是基于PerfDog工具的概念。

  • Android App流畅度FPS测试方法总结
    答:1. 通过高速摄像机或iPhone录制视频,捕捉240帧/s的帧率测试步骤1: 清除后台,录制联系人滑动过程,时间约20秒,注意视频质量。步骤2: QuickTime帧回放中,选择起始清晰帧(F1)作为基准。步骤3-5: 循环检查,计算平均帧数F,再求帧率Fps。2. SurfaceFlinger方法,深度分析应用程序流畅度步骤1: 使用adb s...
  • app专项之流畅度测试
    答:5.PerfDog Stutter:卡顿率 定义: 测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长 计算思路 :基于PerfDog Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。Stutter(卡顿率)=∑Jank time / T...
  • APP流畅度测试步骤
    答:1. 高动画流畅性需求页面(当主观上认为动画卡顿时)首先开启自带的GPU图形呈现器(每帧是否超过16ms的线。即是否达到60帧,低于30帧需要提交报告)Android studio monitor 查看各项指标(备选)adb shell dumpsys gfxinfo PackageName(导出最近120帧的各线程的gpu渲染信息)Trepn Profiler 查看各项指标(...
  • APP页面掉帧卡顿原因及Perfdog性能测试之FPS
    答:上下帧画面显示时间间隔,也可简单认为单帧渲染耗时 Avg(FTime):平均帧耗时 1、流畅度不等于FPS,需要多维度衡量,考虑FPS,Jank,Stutter 2、APP需要关注FPS、Jank及卡顿率。只是需要区分使用场景,如: (1)、静态页面窗口 只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起...
  • APP性能测试(1):FPS测试
    答:FPS 即 Frames per Second(每秒显示的帧数),用于测量显示帧数的度量。帧数为 0 说明页面处于静止,只要页面动起来,这个帧数就会有变化,然后再趋于静止,页面滚动起来帧数整体呈现 “非对称” 抛物线走势。接下来看一张图直观感受一下:通过上图我们能看出 FPS 值的大小对画面流畅度的影响,每一帧都...
  • 如何测试安卓(Android)系统的流畅度
    答:测试方法一:系统自带-开发者模式 实际上,为了方便开发者测试,安卓本身就内置了流畅度检测的功能。不过,这需要我们开启隐藏的开发者选项。如果你在用原生系统,那么开启开发者选项的方法很简单,进入到设置菜单“关于手机”页面,点击数次“版本号”,即可开启开发者选项。如果用的是其他ROM,方法也许有...
  • 手机上的app性能测试怎么测
    答:地理位置定位测试:大多数业务软件(电商类)都支持获取用户的地理位置信息,方便做一些本地业务的定制(尤其是对于O2O行业),至少需要考虑到三方面:1. 城市是否能准确定位;2. 定位位置精度是否符合要求;3. 地理位置名称解析过程无误。应用升级兼容性测试:需要保证应用能够在升级或跨版本升级后一些关键...
  • 直播App源码开发中的视频流畅度问题如何解决?
    答:做直播APP开发主要的一点还是视频的流畅度问题,视频低延时主要相关因素有很多,包括网络情况、前端设备的码流、前端设备的数量、直播流协议等。1、本地网络带宽是否足够 视频播放主要占用的是上行带宽,如果设备所在网络的上行带宽不够的话,我们在远程预览设备时,会出现卡顿、延迟的情况。我们可以在设备所在...
  • 如何量化Android应用的“卡”
    答:2. 可以在Choreographer的回调FrameCallback中,按秒计数表示当前App的流畅程度,即流畅度SM(SMoothness)。采用这样方式就可以在App内部观测当前App的流畅度了。小编有话说 作为专业的质量跟踪平台,除了移动终端各种崩溃问题的分析,腾讯Bugly还将陆续跟大家分享鹅厂的移动质量之道,更有效地跟踪移动应用的...
  • iOS12 beta8流畅度提升大吗?
    答:评测1:流畅度小编亲测iPhone6s升级到iOS12 beta8,启动应用速度提升显著,相机应用启动更快。原生App如天气、视频等运行流畅,第三方应用虽与前版相差不大,但整体操作滑动无阻,堪称目前最流畅的iOS12测试版。评测2:耗电情况虽然未给出具体数值,但根据反馈,iOS12 beta8在日常使用中表现良好,电量...