android系统刷新机制

本文详细探讨了Android系统的刷新机制,包括View的invalidate过程、VSync信号触发的帧画面切换,以及CPU与GPU在渲染中的角色。核心观点是,Android底层每16.6ms发送VSync信号,应用通过调用invalidate注册刷新,实际刷新工作在接收下一个信号时开始。此外,文中还提及View.post()的工作原理,当未attachToWindow时,runnable会被缓存并在ViewRootImpl的performTraversals中执行。
摘要由CSDN通过智能技术生成

整理一下android系统的刷新机制

参考:
Android 屏幕刷新机制:
https://www.jianshu.com/p/0d00cb85fdf3
Android应用层View绘制流程与源码分析
https://blog.csdn.net/yanbober/article/details/46128379

一般刷新包括View.postInvalidate到最后都是走到View.invalidate(),然后一直向上回到ViewRootImpl根据需要进行performMeasure,performLayout,performDraw,刷新完成。

->invalidate
->invalidateInternal
->invalidateChild
->invalidateChildInParent
->ViewRootImpl.invalidateChildInParent(int[],Rect);
->ViewRootImpl.invalidateRectOnScreen(Rect);
->ViewRootImpl.scheduleTraversals();
->ViewRoot.doTraversals();  
->performTraversals();
    ->performMeasure()
    ->measure()
    ->onMeasure()
    ->performLayout()
    ->layout
    ->onLayout()
    ->performDraw()
    ->draw

再往下进一步,invalidate之后立即刷新吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值