Android GWES之窗口管理之基本构架原理

转自:http://blog.csdn.net/maxleng/article/details/5554454



Android 的窗口管理是 C/S 模式的。 Android 中的 Window 是表示 Top Level 等顶级窗口的概念。 DecorView Window Top-Level View ,这个 View 我称之为主 View DecorView 会缺省的 attach Activity 的主窗口中。主 View 被加入到 WindowManager 中, WM 使用 WindowState 与这个主 View 对应。

 

Android GWES之窗口管理之基本构架原理_第1张图片


 

       Activity建立一个主窗口后,在将主窗口添加到WindowManager时,首先要建立WindowManager代理对象,并打开一个会话(实现IWindowSession AIDL接口),并维持该会话。Activity将通过该会话与WindowManager建立联系,这个SessionC/S体系的基础,Client通过WindowSessionwindow加入到Window Manager中。一个完整的窗口概念横跨了ViewViewRootWindowManager ServiceWindowDecorViewViewIWindow ,ISessionWindowState之间的关系如下:

 

 

 

 

Android GWES之窗口管理之基本构架原理_第2张图片

 

客户端的Activity通过Session会话与WindowManager建立对话,而WindowManager则通过IWindow接口访问Client,将消息传递到Client端,通过消息分发渠道,将消息传递到处理函数OnXXX

 

后面我们将通过ClientWM Service分别加以分析。


你可能感兴趣的:(android,session)