Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android的面向組件思想

Android的面向組件思想

編輯:關於Android編程

面向組件思想是在軟件規模擴大,復雜度上升的背景下,以面向對象為基礎而提出的一種軟件設計思想。可以把它理解為一種更粗粒度的面向對象,其粒度一般大於對象,但具體要到什麼程度,又可以根據實際情況來決定。這種思想以組件為基礎,強調“服務”的概念。

面向組件具有以下特點:

低耦合性:組件之間一般互不依賴,一個組件只需要知道另一個組件的“名字”就可以訪問它;

高重用性:系統級的重用;

高互操作性:不同的開發商開發出來的組件只要定義好了接口就可以互相訪問;

進程的透明性:組件可以工作在同一個進程也可以工作在不同的進程;

語言和開發環境的獨立性:組件只需要定義好服務接口,內部實現可以采用任何語言。


面向組件的框架已經有很多了,如JavaBean、EJB、COM等。Android系統並沒有聲稱自己是面向組件的,但從其設計思想來看,Android一開始的設計考慮就是要采用一種“無邊界”的設計方式,要實現系統內資源高度的重用。

 

事實上,Android完全符合面向組件的特征。首先,Android提供了Activity、Service、BroadcastReceiver和ContentProvider四大組件。這四大組件之間的協作是通過Binder機制和來協作的,其中ServiceManager與ActivityManagerService是保證組件間協同工作的最重要的基礎,同時它們本身也是一種組件。ServiceManager是Binder的守護進程,用來管理各種服務,並向調用這些服務的客戶提供查詢遠程接口的功能。而ActivityManagerService負責所有Activity和Service的啟動,另外還負責系統中所有廣播的注冊和發布以及把廣播發送給接收者。


有了這個機制,Android各個組件之間實現了低耦合,Activity與Activity、Activity與Service、Service與Service之間的都只需知道對方的“名字”就可以訪問它。而且,它們之間的重用是系統級的,尤其是Service,任何部署在系統裡的Service可以為任何一個應用,任何一個進程,任何一個組件來提供服務。它也滿足高互操作性,任何開發者開發出來的組件,只要公布其接口就可以為其他開發者所用。Android對進程完全透明,取而代之的,在Android裡,一般用Task的概念來作為應用的邊界,一個Task可以是單個進程也可以是多個進程。Activity與Service的協作既可以在同一個進程又可以在不同進程完成。如,啟動Activity的startActivity函數,如果新Activity配置了android:process這個屬性,那麼,它就會運行在另一個進程中 ,否則運行在同一進程中。而啟動Service的方式有兩種,如下:

startService:運行在不同進程;

bindService:運行在統一進程。

啟動過程都是通過binder機制來通知ActivitManagerService來決定是否要新建一個進程,並啟動新的Activity或Service。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved