前言:应用市场上的app功能越来越强大,界面越来越复杂、越来越酷炫,而要实现这些动效意味着要消耗系统更多的性能,处理不好,Android系统可能会无法及时完成这些复杂的动画和界面的渲染,从而导致卡顿问题的出现。
都知道,如果你觉得你的应用界面出现卡顿不流畅的情况,肯定是因为没有在16ms要完成你的工作,那么是16ms是什么?
基本概念:
帧数(FPS):FPS帧数是由显卡决定
一般就是我们所说一秒钟内画面刷新的速度,60fps就是一秒钟出现60张画面,而对帧数起到决定性的是电脑中的显卡,显卡性能越强,帧数当然就越高啦,然后画面就越流畅。
刷新率:刷新率是由显示器决定
一般都是出现在显示器/屏幕上,比如我的是高刷新率显示器,144Hz的,意思就是显示器的物理刷新速度上限时1秒钟144张,这个需要显示器的面板、驱动电脑支持,而这些数据来源于显卡的输出。
如果显卡输出只有30fps,但是显示器有60Hz刷新率,那会怎么样?就是画面略微有些卡顿,因为显示器固定一秒显示60幅画面,但却只有30幅可以提供,将会复用同一张画面。
那么反过来我的显卡可以输出120fps,显示器依然是60Hz,又会怎么样?显示器依然是固定一秒显示60幅画面,多输出的60fps将会被抛弃掉,就是无效的帧数,被白白浪费!
所以才有NVIDIA推出的G-SYNC、AMD FreeSync技术,可以让显示器与显卡输出帧数同步,做到你拍一我拍一,你拍二我拍二,显卡输出120fps全部都用上,前提是显示器刷新率在120Hz以上,这样游戏画面更加流畅、顺滑。
关系:物理上的显示器约束了帧数的表现/上限,刷新率的高低决定了有效帧数的多少。
16ms来源:
大多数的Android显示屏幕是以每秒60帧来刷新的(也就是60Hz)。一帧可以看做是一张的独立图片,60帧每秒就意味着:16ms=1000/60Hz,相当于60fps。这就是上面说的16ms,这也是为什么Android系统每隔16ms就会发出一次VSYNC