GUI原理笔记
2016-09-30 21:45
106 查看
主要组成部分:
窗口和图形系统 - Window and View Manager System.
显示合成系统 - Surface Flinger
用户输入系统 - InputManager System
应用框架系统 - Activity Manager System.
此处应先该概括Android的启动流程:
其中,第一次进入Java世界,运行ZygoteInit.java::main() 函数初始化Zygote. Zygote 并创建Socket的server 端,Zygote监听服务端Socket,等待新的应用启动请求,一个新的应用被fork完后,第一个调用的方法就是 ActivityThread的main(),这个函数主要做的事情就是创建一个ActivityThread线程,然后调用loop()开始等待。当收到来自 ActivityManager 的 LAUNCH_ACTIVITY 消息后,Activity开始了他的显示之旅
一 窗口管理系统
Android中与跟窗口管理相关(不包括显示和按键处理)主要有两个进程,Acitivty所在进程 和 WndowManagerService 所在进程(SystemServer). Activity进程负责窗口内View的管理,而WindowManager Service 管理来自与不同Acitivity以及系统的的窗口,
WMS会生成一个SurfaceController,ViewRootImpl和这个Controller会生成Window对应的Surface,通过这个对象,Canvas 可以要求Surface Flinger 分配OpenGL绘图用的Buffer。
invalidate 原理: 在绘制的时候有个缓存DisplayList,函数invalidate()从当前View 出发,向上遍历找到View Tree中所有Dirty的 View 和 ViewGroup, 根据需要重新生成DisplayList, 并在drawDisplayList() 函数里执行OpenGL命令将其绘制在某个Surface Buffer上。
1.Input Reader: 负责从硬件获取输入,转换成事件(Event), 并分发给Input Dispatcher.
2.Input Dispatcher: 将Input Reader传送过来的Events 分发给合适的窗口,并监控ANR。
3.Input Manager Service: 负责Input Reader 和 Input Dispatchor的创建,并提供Policy 用于Events的预处理。
4.Window Manager Service:管理Input Manager 与 View(Window) 以及 ActivityManager 之间的通信。
5.View and Activity:接收按键并处理。
6.ActivityManager Service:ANR 处理。
窗口和图形系统 - Window and View Manager System.
显示合成系统 - Surface Flinger
用户输入系统 - InputManager System
应用框架系统 - Activity Manager System.
此处应先该概括Android的启动流程:
其中,第一次进入Java世界,运行ZygoteInit.java::main() 函数初始化Zygote. Zygote 并创建Socket的server 端,Zygote监听服务端Socket,等待新的应用启动请求,一个新的应用被fork完后,第一个调用的方法就是 ActivityThread的main(),这个函数主要做的事情就是创建一个ActivityThread线程,然后调用loop()开始等待。当收到来自 ActivityManager 的 LAUNCH_ACTIVITY 消息后,Activity开始了他的显示之旅
一 窗口管理系统
Android中与跟窗口管理相关(不包括显示和按键处理)主要有两个进程,Acitivty所在进程 和 WndowManagerService 所在进程(SystemServer). Activity进程负责窗口内View的管理,而WindowManager Service 管理来自与不同Acitivity以及系统的的窗口,
WMS会生成一个SurfaceController,ViewRootImpl和这个Controller会生成Window对应的Surface,通过这个对象,Canvas 可以要求Surface Flinger 分配OpenGL绘图用的Buffer。
invalidate 原理: 在绘制的时候有个缓存DisplayList,函数invalidate()从当前View 出发,向上遍历找到View Tree中所有Dirty的 View 和 ViewGroup, 根据需要重新生成DisplayList, 并在drawDisplayList() 函数里执行OpenGL命令将其绘制在某个Surface Buffer上。
三 用户输入系统
共涉及一下模块:1.Input Reader: 负责从硬件获取输入,转换成事件(Event), 并分发给Input Dispatcher.
2.Input Dispatcher: 将Input Reader传送过来的Events 分发给合适的窗口,并监控ANR。
3.Input Manager Service: 负责Input Reader 和 Input Dispatchor的创建,并提供Policy 用于Events的预处理。
4.Window Manager Service:管理Input Manager 与 View(Window) 以及 ActivityManager 之间的通信。
5.View and Activity:接收按键并处理。
6.ActivityManager Service:ANR 处理。
相关文章推荐
- GUI编程笔记(java)05:GUI事件监听机制原理和举例说明
- 【原理+分析】 缓冲区溢出笔记之---STACK溢出
- J2ME学习笔记(五)-----MIDlets中GUI(图形)编程
- ASP.net(1.1)原理学习笔记--第十章 状态管理State Management
- COM原理与应用学习笔记一
- 网络原理笔记2-数据通讯基础
- 网络原理笔记5-TCP/IP
- ASP.net(1.1)原理学习笔记--第十一章 安全性Security
- 孙鑫VC学习笔记:第十三讲 WM_FILE_NEW消息响应原理
- [转]计算机组成原理复习笔记
- 面向服务的分析与设计原理(笔记)
- ASP.net(1.1)原理学习笔记--第三章 配置Configuration
- ASP.net(1.1)原理学习笔记--第七章 数据绑定Data Binding
- ASP.net(1.1)原理学习笔记--第九章 缓存Caching
- ASP.net(1.1)原理学习笔记--第四章 HTTP管道 Pipeline
- [理论] GUI原理1 - 色彩王国
- EJB工作原理学习笔记!
- ASP.net(1.1)原理学习笔记--第二章 web Form 网页视窗
- Java学习笔记--Lesson1(Java跨平台原理的剖析和Java环境变量的配置
- 网络原理笔记3-网络体系结构