2017/10/22学习笔记
来源:互联网 发布:mac桌面图标怎么靠左 编辑:程序博客网 时间:2024/05/29 18:24
首先恭喜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动画。
- 2017/10/22学习笔记
- 2017/10/10学习笔记
- 2017-3-10学习笔记
- 2017/10/03 学习笔记
- 2017/10/12学习笔记
- 2017/10/20学习笔记
- 2017/10/21 学习笔记
- 2017/10/28 学习笔记
- 2017/10/30 学习笔记
- Servlet 学习笔记(始于2017/8/10)
- 2017-8-10 Struts2学习笔记二
- 2017/10/2 上午 学习笔记
- PYTHON 学习笔记10-27-2017
- PYTHON 学习笔记10-30-2017
- python学习笔记【2017-12-10】
- Spring学习笔记22
- java学习笔记22
- Java学习笔记22
- 51nod 1127 最短包含字符串
- 映射器接口,Mpper XML 文件及mappers配置
- 配置yii2的路由跟TP一样nginx(支持pathinfo路由模式)
- angular中使用ngCookies来操作cookie
- 数据结构学习笔记(16)---选择类排序
- 2017/10/22学习笔记
- oracle安装后如何进行登录测试
- The Philosophy of Computer Science
- Java编程思想_第八章_多态笔记
- Handler实现的无限自动轮播
- [LeetCode]665.Non-decreasing Array ❤
- c++随笔——17.10.22
- 十天精通css知识点(个人笔记)
- Fragment在FrameLayout