Android控件系統(一)——Activity控件系統引導

  本章做爲「Activity控件系統」系列文章的開篇,向你們闡述什麼是控件系統?控件系統的實現做爲Android高層次抽象,爲了更方便與用戶打交道的,在這些便捷的背後其實隱藏着不少祕密。這些祕密其實就是控件系統的實現過程所使用的底層的服務。
  本文所描述的控件系統並不是Android全部的控件系統,咱們將以Activity啓動爲例,分析這個過程當中控件系統所具有的能力,直觀的來看控件系統須要具有以下幾個能力:框架

  • 窗口顯示能力,窗口外觀以及咱們自定義的layout;
  • 窗口變化響應能力;
  • 事件輸入和響應能力,例如觸摸事件、按鍵事件;
  • Activity管理能力;

  爲了知足控件系統的這些能力,Android Framework提供了以下圖所示的基礎服務,來支撐控件系統的具體工做:cdn

  • Binder:實現進程間通訊;
  • Handler:消息隊列;
  • WMS(Window Manager Service):窗口顯示管理服務;
  • 輸入系統:接收外部或內部事件的輸入;
  • AMS(Activity Manager Service):Activity管理服務;

image

  之因此單獨使用一篇"引導"來向你們說明這些,是爲了告訴你們閱讀Android源碼的一個邏輯————注重框架分析,忽略細節。什麼意思呢?由於Android系統源碼比較龐大,控件系統並不是一個獨立的功能模塊,它是依賴於系統提供的不少服務的,若是你一味的想把全部的源碼都讀懂搞清楚,我想控件系統你看半年也是有可能的。
  因此,控件系統中使用到了諸如Binder、Handler、WMS、輸入系統等子系統在Framework層中提供的功能,你只須要了解這些子系統提供的API功能便可(就像咱們作APP開發),切勿「一追到底、沒完沒了」,避免只見樹木不見森林。
  若是能夠,建議對Binder、消息隊列、WMS有所瞭解後,開始分析控件系統,你將會理解的更加透徹;固然,你也能夠直接看上面的系列文章。blog

若是是大牛,上面的話就當我沒說啦,嘿嘿;另外,能力有限,寫的很差你們莫怪隊列

相關文章
相關標籤/搜索