# Android?GWES
### 基本框架篇
我這里的GWES這個術語實際上從Microsoft?的Window上移植過來的,用GWES來表示Android的窗口事件系統不是那么準確,在Android中Window是個弱化了的概念,更多的表現在View這個概念上。在很大程度上,Android的View的概念可以代替Microsoft?Window這個概念,有點和Microsof暗中較勁的意味,你用過的概念我就偏不用,這個也是我以為的設計者意圖。
### ?原始GUI基本框架
首先我們從Android的SDK外特性空間開始,在編寫Actvitiy時,我們都是面對的處理函數:OnXXXX(),例如有按鍵按下就是OnKeyDown等,在這個過程中系統做了怎樣的處理?要詳細的理解這個過程,我們就需要理解Andoid的View管理,窗口系統,消息系統和輸入系統。我們還是從最本質的地方開始,Android作為一種嵌入式的圖形用戶界面系統,它的基本原理與一般GUI的原理是相同的,同時也是遵循GWES(圖形窗口事件系統)的一般規律,總體上Android就是管理用戶輸入和系統屏幕輸出的一個系統。其實GWES這個名稱更能體現GUI的基本實質要素:圖形、窗口、事件。
#### 1.?一般GUI的基本組成
?GUI的實現就是對上面提到的三個基本要素的管理,根據這這三個要素的特性及其涉及的范圍,GUI在總體上可以分為三部分:
- ?事件管理器
- ?窗口管理器
- GDI(繪制與GDI邏輯對象管理)

(1)?事件管理器
- 收集系統消息,轉換并分發系統消息和用戶消息給各個窗口對象。
- 消息隊列管理
(2)窗口管理器:
- 管理窗口的創建,銷毀
- ?窗口的繪制
- ?活動窗口,輸入焦點的切換
- ?窗口間關系的管理
- ?控件,菜單實現
(3)GDI
- 上下文設備管理
- 上下文設備對象管理:字體,畫筆等
- ?圖形繪制:點、線,填充等
- ?圖象操作:位傳送、位圖操作
#### 2?系統體系構架及其數據流的大體走向

在本質上GUI就是管理用戶輸入和屏幕輸出,我們從上面的體系結構可以看到GUI的這兩大數據流的基本流向,這也決定了Android?GWES設計的最基本的著眼點。
Android弱化了窗口的概念,著重使用View的概念。所以Android的基本組成可以從上面的圖修改成如下的組成:

- 前言
- (一)分析方法論探討之設計意圖
- (二)方法論探討之概念空間篇
- (三)手機之硬件形態
- (四)手機的軟件形態
- (五)基本空間劃分
- (六)IPC框架分析 Binder,Service,Service manager
- (七)Service深入分析
- (八)Android 啟動過程詳解
- (九)Zygote Service
- (十)Android GWES之基本原理篇
- (十一)Android GWES之消息系統
- (十二)Android GEWS窗口管理之基本架構原理
- (十三)Android GWES之Android窗口管理
- (十四)Android GWES之輸入系統
- (十五)Android輸入系統之輸入路徑詳解
- (十六)Android電話系統-概述篇
- (十七)電話系統之rilD
- (十八)Android電話系統之RIL-Java
- (十九)電話系統之GSMCallTacker
- (二十)Android應用程序框架之無邊界設計意圖
- (二十一)Android應用框架之AndroidApplication
- (二十二)Android應用框架之Activity
- (二十三)Andoird GDI之基本原理及其總體框架
- (二十四)Android GDI之顯示緩沖管理
- (二十五)Android GDI之共享緩沖區機制
- (二十六)Android GDI之SurfaceFlinger
- (二十七)Android GDI 之SurfaceFlinger之動態結構示意圖
- (二十八)Android GDI之Surface&Canvas