WEB开发网
开发学院手机开发Android 开发 Android GWES之Android窗口治理 阅读

Android GWES之Android窗口治理

 2010-06-19 04:16:00 来源:WEB开发网   
核心提示:Path,2.3 ViewRoot,Android GWES之Android窗口治理(3),Window Manager Proxy ViewRoot与Window Manager的核心是IWindowSession和IWindow,ViewRoot通过IWindowSession添加窗口到Window Manager
Path。

2.3 ViewRoot,Window Manager Proxy ViewRoot与Window Manager的核心是IWindowSession和IWindow。ViewRoot通过IWindowSession添加窗口到Window Manager。而IWindow这是Window Manager分发消息给Client ViewRoot的渠道。利用AIDL接口进行进程间通信。

ViewRoot实际是一个Handler,ViewRoot建立主View与WindowsManger通讯的桥梁。ViewRoot在本质上一个Handler。我们知道Handler的基本功能就是处理回调,发送消息。

Activity在使用getSystemService获取WindowManagerImpl ,建立了一个WindowManagerImpl实例,即Window Manager服务的代理:

wm=(WindowManagerImpl)context.getSystemService(Context.WINDOW_SERVICE);并调用wm.addview添加窗口到WMService中。

这个过程在客户端建立了什么样的管理框架,并如何这个会话?在Window Manager Proxy中建立了View,Layout ,ViewRoot三者的对应关系表。构造一个ViewRoot就会打开一个session,并利用IWindowSession建立会话上下文。

4 Window Manager Service 本次对于Window Manager Service的研究仅限于FocusWindow,消息系统。其他的部分将在后面的专门章节讨论。

Window Manager管理的窗口是应用程序的Top-level窗口,我这里参照Window的概念叫主窗口。主窗口为什么要放在在Service这边来管理呢?为什么不放在Client那边?主窗口放置在一起管理是为了计算Z-order序列,根据应用程序的状态来显隐应用程序的窗口。我想Android设计者在考虑设计窗口系统的时候,一定首先考虑:

窗口z-order序的管理

活动窗口的计算,及其变化通知

窗口归属(属于哪个应用)

输入法管理

Window Service大体上实现了如下的功能:,

(1)Z-ordered的维护函数

上一页  1 2 3 4  下一页

Tags:Android GWES Android

编辑录入:coldstar [复制链接] [打 印]
赞助商链接