由电脑屏幕刷新频率所联想到的一些Android知识点

由屏幕刷新频率所联想到的一些Android知识点

仅结合自己以前了解的片面知识做出的不负责任的猜想

我们知道,当前笔记本电脑屏幕刷新频率大都是60Hz,据说屏幕帧数只要过了30Hz,就能感到流畅,实际上,GPU(显卡)即使性能很强,玩游戏帧数达到上百帧(每秒计算上百副图像的数据,也就是渲染),屏幕刷新频率低也没有用,所以才有电竞屏,通常都在120Hz以上。

那么,这个跟手机有什么关系呢。我记得Android手机屏幕刷新基本都是16.6ms,而刚好16.6=1/60。哈,说明目前手机屏幕的刷新频率应该大都是60Hz,而且这应该也是目前手机主流的软硬件支持。在Android中,View的绘制,一般都是每16.6ms,底层硬件发来一个屏幕刷新信号,然后屏幕取走当前缓存的数据显示,与此同时GPU或CPU计算下一个屏幕绘制请求,如果在16.6ms内绘制完毕,下一个刷新信号到来时就成功更新,如果是操作耗时,超过16.6ms,那么UI线程依然阻塞在绘制中,无法响应其他触摸事件,下一个屏幕更新信号到来也取不到绘制完毕的数据,导致屏幕闪烁。其实这就是View的被动刷新。

然而,对于游戏来说,可能经常会出现16.6ms绘制不完的情况,那么体验是极差的。其实SurfaceView就可以解决这点,SurfaceView是主动刷新,在独立子线程中绘制,也不会阻塞UI,并且使用双缓冲,被显示的始终是前面的canvas,在绘制的始终是后面的canvas,绘制完毕后交换两者位置。这样一来,即时16.6ms里面绘制不完,UI线程也不会阻塞,取到的数据也是前面canvas的视图,就不会有闪屏的现象,而绘制完毕后post更新后又可以再下一次刷新。

因此,其实我们还是应该尽量在16.6ms里面完成绘制,才会有良好的体验。未来手机屏幕的刷新可能会提高,相应的,肯定需要更强的CPU或者GPU的算力支持,才能够更快速完成更繁重的计算,这应该也是一种发展趋势。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值