2017/10/22学习笔记

首先恭喜WE

1.ViewRootImpl创建的时还会创建一个Choreographer,以及一个surface


关于Choreographer:可以理解成一个事件处理器,内部主要有三大部分,FrameHandler,callBackQueque,Receiver,那么它对事件的处理过程大概为:首先它会通过一些方法获取到surfaceFlinger的相关fd,并将它们交给Looper监听,当fd有I/O操作的时候唤醒loop,触发onVSync事件,调用handler将消息传递到消息队列,最终调用handecallback方法,处理上层要做的逻辑,不直接调用onVSync的callBack是因为有可能无法再16毫秒内完成该事件。Choreographer内部的callBack包含三个类型,动画相关,用户输入,绘制,在这里说下他的绘制方法是通过回调调用我们ViewRootImpl中的performTraversals()方法来触发View的三大绘制流程。


关于surface,surface基本是跟ViewRootImpl同时创建的,它是由WindowManagerService创建的,首先创建的是一个surfaceControl,WMS只能控制surface的创建销毁透明度等,并不能修改具体内容,具体内容是通过View的canvas的draw方法进行绘制的,surfaceControl创建完成后会生一个一个surface对象会传给ViewRootImpl,这样我们的View就可以通过一个接口方法获取到我们的surface,在它的一个buffer中进行会制操作,再把buffer传递个surfaceFlinger完成最后的绘制操作。


windowState是我们WindowManagerServie和ViewRootImpl之间的代表,可以监听我们的聚焦事件以及负责我们的Window动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值