Android Framework架構_轉

來源:互聯網
上載者:User

標籤:應用   linu   通用   androi   互動   targe   tle   按鍵   bin   

選自《Android核心剖析》

    Framework定義了用戶端組件和服務端組件功能及介面。包含3個主要部分:服務端,用戶端和Linux驅動。

(一)服務端

    服務端主要包含兩個重要類,分別是WindowManagerService(Wms)和ActivityManagerService(Ams)。Wms的作用是為所有的應用程式分配視窗,並管理這些視窗。包括分配視窗大小,調節各視窗的疊放次序,隱藏或顯示視窗。Ams的作用是管理所有應用程式中的Activity。

    除此之外,在服務端還包括2個訊息處理類:

    1)KeyQ類:該類為Wms的內部類,繼承於KeyInputQueue類, KeyQ對象一旦建立,就立即啟動一個線程,該線程會不斷地讀取使用者的UI操作訊息,比如按鍵、觸控螢幕、trackball、滑鼠等,並把這些訊息放到一個訊息佇列QueueEvent類中。

    2)InputDispatcherThread類:該類的對象一旦建立,也會立即啟動一個線程,該線程會不斷地從QueueEvent中取出使用者訊息,並進行一定的過濾(用Wms中相應函數處理),過濾後,再將這些訊息發給當前活動的用戶端程式中。

(二)用戶端

    用戶端主要包括以下重要類:

    1)ActivityThread類:該類為應用程式的主線程類,所有的Apk程式有且只有一個ActivityThread類,程式的入口為該類中的static main()函數。

    2)Activity類:該類為APK程式的一個最小運行單元,一個APK程式中可以包含多個Activity對象,ActivityThread主類會根據使用者操作選擇運行哪個Activity對象。

    3)PhoneWindow類:該類繼承與Window類,同時,PhoneWindow類內部包含了一個DecorView對象。簡而言之,PhoneWindow是把一個FrameLayout進行了一定的封裝,並提供了一組通用的視窗操作介面。

    4)Window類: 該類提供了一組通用的視窗(Window)操作API, 這裡的視窗僅僅是程式層面上的,Wms所管理的視窗並不是Window類,而是一個View或者ViewGroup類,一般就是指DecorView類,即一個DecorView就是Wms所有管理的一個視窗。Window是一個abstract類型。

    5)DecorView類:該類是一個FrameLayout的子類,並且是PhoneWindow中的一個內部類。Decor的英文是Decoration, 即“修飾”的意思,DecorView就是對普通的FrameLayout進行了一定的修飾,比如添加一個通用的TitleBar, 並響應特定的按鍵訊息等。

    6)ViewRoot類: Wms管理用戶端視窗時,需要通知用戶端進行某種操作,這些都是通過非同步訊息完成的,實現方式就是使用Handler, ViewRoot就是繼承於Handler,其作用主要是接收Wms的通知。

    7)W類:該類繼承於Binder, 並且是ViewRoot的一個內部類。

    8)WindowManager類:用戶端要申請建立一個視窗,而具體建立視窗的任務是由Wms完成的,WindowManager類就像是一個部門經理,誰有什麼需求就告訴它,由它和Wms進行互動,用戶端不能直接和Wms進行互動。

(三)Linux驅動

     Linux驅動和Framework相關的主要包含兩部分,分別是SurfaceFlingger(SF)和Binder。每一個視窗都對應一個Surface, SF驅動的作用是把各個Surface顯示在同一螢幕上。

     Binder驅動的作用是提供跨進程(IPC)的訊息傳遞機制。

轉自:http://blog.sina.com.cn/s/blog_49f62c3501010aml.html

Android Framework架構_轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.