最近面试的时候问到了一个小题目,关于android端流畅度的测量方法。我的回答是通过获取gfxinfo信息,然后计算一个单位时间内绘制的帧数,从而计算出fps的值。同时为了衡量稳定性,我通过对比测试方差的方式,衡量滑动的流畅度稳定性,最后,基于adb做成自动滑动、获取数据的脚本。
但是面试官又问了另外一个问题—-关于静置的画面怎么衡量呢?如果用的是旧方法,那么静止的画面fps应该会变成0,那样岂不是说非常不流畅?这当然不是,因为fps的弊端是计算1s内绘制了多少帧,如果静止了,从数值来看就变得非常小,从而导致数据的不准。
那么怎么办呢?,搜了下资源,参考了这篇文章:https://www.jianshu.com/p/6a680186b95f
嗯,大概意思是这样的,android提供了这样一个类:
Choreographer,这个类有一个回调接口FrameCallback,于是就变成:
Choreographer.getInstance().postFrameCallback(