Android Window簡單學習整理 一

來源:互聯網
上載者:User

標籤:


一、Activity、Window、 View 之間關係
    Android 圖形化使用者介面(Graphical User Interface,簡稱GUI),遵循GWES(圖形視窗事件系統)的一般規律,系統管理使用者輸入(事件管理)和系統螢幕輸出(視窗與介面繪製)的一個系統。
    在Android開發中如果要顯示一個介面,都會先寫一個Activtiy子類,所以都理解為Activity就是一個介面,這種說法比較寬泛。由系統負責建立開發編寫的Activity子類,Activity建立是建立一個Window對象(通常是PhoneWindow),Window建立時會添加一個View對象(DecorView)。所以三者的關係是Activity -> Window -> View ,以下簡單描述三者主要職責(詳見官方3個類相關文檔):
Activity   :  應用展示一個介面的老大,並不負責螢幕展示,主要用於與Android系統進行互動。Window :  負責顯示布局(多個視窗是上下層級顯示、還是上下左右平級顯示)、顯示層級、事件處理。View      :  負責控制如何繪製具體View地區 與 View地區內的事件處理。

二、Window系統
Android的視窗管理是Client/Server(C/S)模式的。
ClientActivity 開啟一個會話(開啟IWindowSession AIDL介面),通過此介面將Window加入到WindowManager
Server將視窗子添加到WindowManager
WindowManagerServiceAndroid 設計時需要考慮的視窗問題:
視窗z-order序的管理(視窗如何疊加)
使用中視窗的計算,及其變化通知
視窗歸屬(屬於哪個應用)
IME管理



三、Window類型與層級
WindowManagerService -> IWindow <- ViewRoot (View 變數、token 用於IPC通訊)
視窗類別型,int值越大越靠上顯示
視窗類別型 建立方式 取值範圍
應用視窗 Activity內部完成建立 1 ~ 99
子視窗 由父視窗建立 1000 ~ 1999
系統視窗 系統判斷僅顯示一層 2000 ~ 2999


參考資料:Android 核心分析(12) -----Android GEWS視窗管理之基本架構原理

Android 核心分析(13) -----Android GWES之Android視窗管理

《Android 核心剖析》  柯元旦第8章 建立視窗的過程第14章 WindowManagerService工作原理 

Android Window簡單學習整理 一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.