浅析Android页面刷新机制

浅析Android页面刷新机制

页面是APP最直观的呈现,它的流畅与否直接决定了用户的去留。本次与大家一起去看看页面刷新背后的秘密。

角色

ViewRootImpl 看名字就很明白了(视图源头)
(1) 视图最终的呈现由它触发,它内部打通了人机交互的门槛
(2) 既然作为视图的根,子视图的刷新请求必然最终都是委托它来发送,同样子视图的绘制流程源头也是由它发起的。

问题来了,既然 ViewRootImpl负责视图刷新请求的发送,也真实发起页面绘制,自己干不就可以了??

Choreographer “编舞者” ,具有编排,设计的能力。
(1) 对系统屏幕刷新信号获取
(2) 在刷新信号到来时,编排刷新任务(常编排任务有:tranversal(视图刷新), animation(属性动画))

关于屏幕刷新:屏幕刷新频率60hz,那么刷新的一个时钟周期为16.6ms,正常情况上一个时钟周期的绘制内容会在下一个时钟周期中展示。
关于丢帧:实际上就是在一个时钟周期内无法完成绘制任务。页面卡顿:是丢了若干帧后视觉能明显感觉到不流畅。
编排的作用:就是找准正确的刷新时机,而任务编排则帮助我们在合适的时机将编排的任务执行起来。

局部/全局刷新

触发页面刷新最终只有两种方式:invalidate, requestlayout&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值