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

Android GWES之Android窗口治理

 2010-06-19 04:16:00 来源:WEB开发网   
核心提示:(2)输入法管理(3)AddWindow/RemoveWindow(4)Layerout(5)Token管理,AppToken(6)活动窗口管理(FocusWindow)(7)活动应用管理(FocusAPP)(8)转场动画(9)系统消息收集线程(11)系统消息分发线程在服务端的窗口对象叫做WindowState,And

(2)输入法管理

(3)AddWindow/RemoveWindow

(4)Layerout

(5)Token管理,AppToken

(6)活动窗口管理(FocusWindow)

(7)活动应用管理(FocusAPP)

(8)转场动画

(9)系统消息收集线程

(11)系统消息分发线程

在服务端的窗口对象叫做WindowState。在Service维护了一个mWindow数组,这个mWindow就是Window的Z-order序数组。mWindowMap用于记录。

WindowState有一个叫做mClient成员变量来记录客户端IWindow实例,通过IWindow接口实例,Service可以访问客户端的信息,说以IWindow是Service连接View桥梁。

(1) FocusWindow活动窗口如何计算?

基本原理就是查找前景应用(FousActivity),并同Z-Order序中找出属于该FousActivity(AppToken)的主窗口,这个窗口就是计算出来的Focus Window。

(2)为什么要提出Token这个概念呢?

一个应用程序要管理自己的窗口,那么如何来标识该窗口是属于某个Activity,Andoid设计者提出了AppToken这个概念。AppToken在本质上的描述:,通过Token找到属于该Token的allWindows。使用Token开始完成该应用程序的所有窗口的显示和隐藏。

(3)系统消息收集与处理

我们下面重点研究Service中的系统消息收集模式及其分发模式。Service使用KeyQ作为专门的消息队列。

KeyEvent

TouchEvent

TrackballEvent

系统有两个线程:

KeyQ线程,通过Navite函数readEvent轮询设备,将读取的结果放置在KeyQ队列中。

系统dispatcher 等待在KeyQ消息队列上,一旦从消息队列中获取到消息,就通过分发函数通过mClient传递到Client端。

上一页  1 2 3 4 

Tags:Android GWES Android

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