App性能测试点系列二Android FPS
目前我们自己做的App和竞品在中下等性能手机上有明显差距,使用功能时比较卡顿,就决定从FPS入手,找出哪些地方引起的
前提:测试机要root
1、先看下什么叫FPS,理解FPS的概念
PS即Frames per second,>>点击这篇文章 解释的非常清楚。当我们准备测试流畅度的时候,必须先理解两个关键指标60帧每秒以及16.67毫秒,这两个值代表什么意思?怎么得来的?
用过flash的人应该知道动画片其实是由一张张画出来的图片连贯执行产生的效果,当一张张独立的图片切换速度足够快的时候,会欺骗我们的眼睛,以为这是连续的动作。反之类推,当你的图片切换不够快的时候,就会被人眼看穿,反馈给用户的就是所谓的卡顿现象。
想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度,而想达到流畅的效果,至少需要每秒24帧。这也是为什么电影片源通常都是24帧的原因,好奇的同学点击>>知乎高知看看大神的解答。不过60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒,当然超过60帧速的话大部分人还是会受不了的。
综上所述,APP需要尽可能的超过24帧/秒,接近60帧/秒的速度,并且在使用的过程中保持这个速率,试想一下你吃着火锅看着电影,突然图像发生了跳跃或者画面撕裂,那种感觉就像米饭里吃到了沙子一样极度不爽,因此这意味着我们的程序需要在16.67ms内处理一幅画面内的所有事,并保持住这个状态。
2、看下手机自带的查看方式:通过 [设置]->[开发者选项]->[GPU呈现模式分析] ->[在屏幕上显示为条形图]
其中横坐标的一条绿线,是16.67ms,首先,在Android系统中是以每秒60帧为满帧的,那么只要将1秒÷60帧,就能得出每帧为16毫秒(ms)时为满帧的界限,每帧快于16ms即为流畅,而这根绿线所标示的高度即为16ms线,低于绿线即为流畅
23、看下具体颜色所代表的含义
4、具体实例
拿我们公司自己的产品壁纸界面顶端的壁纸类型的tab切换和竞品对比了一下
我们自己的
竞品的