日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

android的窗口机制分析------UI管理系统

發(fā)布時間:2025/3/15 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android的窗口机制分析------UI管理系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? Activity可以看做是整個Android系統(tǒng)的人機接口,它提供了一個窗口來繪制UI,每個Activity在啟動時,我們都需要給它設置一個Content view,作為Activity所呈現(xiàn)的UI內容,這個過程是通過setContentView()方法來實現(xiàn)的。

? ? 眾所周知,android系統(tǒng)中強化了view的概念,主要是體現(xiàn)在對view的管理上,Android中的view以2種形態(tài)存在,單一的View和多個View組成的ViewGroup。Content view是以ViewGroup的形式存在的,也就是說在一個Activity窗口中可以添加多個View,這樣就實現(xiàn)了Android窗口系統(tǒng)的UI多樣化。activity啟動時給activity窗口設置的Content view 是從xml文件中解析出來的,那么android是怎么樣對這個ContentView進行管理的呢,它的內部實現(xiàn)邏輯又是怎樣的呢?

? ? 在進行分析之前,首先給出一個Activity的window和view系統(tǒng)的層級關系,這個層級關系就是在Activity設置完ContentView之后的狀況。? ??

? ? 如下圖。



下面來一一介紹各個層級的含義與作用

1.1??PhoneWindow

? ? PhoneWindow是Android中的最基本的窗口系統(tǒng),每個Activity 均會創(chuàng)建一個PhoneWindow對象,是Activity和整個View系統(tǒng)交互的接口。


1.2??DecorView

? ? DecorView是當前Activity所有View的祖先,它并不會向用戶呈現(xiàn)任何東西,它主要有如下幾個功能,可能不全:

A. ?Dispatch ViewRoot分發(fā)來的key、touch、trackball等外部事件;

B. ?DecorView有一個直接的子View,我們稱之為System Layout,這個View是從系統(tǒng)的Layout.xml中解析出的,它包含當前UI的風格,如是否帶title、是否帶process bar等??梢苑Q這些屬性為Window decorations。

C. ?作為PhoneWindow與ViewRoot之間的橋梁,ViewRoot通過DecorView設置窗口屬性。


1.3??System Layout

? ? 目前android根據(jù)用戶需求預設了幾種UI 風格,通過PhoneWindow通過解析預置的layout.xml來獲得包含有不同Window decorations的layout,我們稱之為System Layout,我們將這個System Layout添加到DecorView中,目前android提供了8種System Layout,如下圖。

? ? 預設風格可以通過PhoneWindow方法requestFeature()來設置,需要注意的是這個方法需要在setContentView()方法調用之前調用。


1.4??Content Parent

? ? Content Parent這個ViewGroup對象才是真真正正的ContentView的parent,我們的ContentView終于找到了寄主,它其實對應的是System Layout中的id為”content”的一個FrameLayout。這個FrameLayout對象包括的才是我們的Activity的layout(每個System Layout都會有這么一個id為”content”的一個FrameLayout)。



1.5??Activity Layout

? ? 這個ActivityLayout便是我們需要向窗口設置的ContentView,現(xiàn)在我們發(fā)現(xiàn)其實它的地位很低,同時這一部分才是和user交互的UI部分,其上的幾層并不能響應并完成user輸入所期望達到的目的。


總結

以上是生活随笔為你收集整理的android的窗口机制分析------UI管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。