Android基礎之應用程序組件

Android應用程序由若干個不一樣類型的組件組合而成,每個組件具備其特定的安全保護設計方式,它們的安全直接影響到應用程序的安全。Android應用程序組件的主要類型有:活動(Activity),服務(Service)廣播接收者(Broadcast Receiver)內容提供者(Content Provider)意圖(Intent)小組件(Widget)通知(Notification)等。其中最重要的是前5種。在決定使用以上哪些組件來構建Android應用程序時,應該將它們列在AndroidManifest.xml文件中,這個文件用於聲明應用程序組件以及它們的特性和要求。下面先分別對活動(Activity),服務(Service),內容提供者(Content Provider),廣播接收者(Broadcast Receiver)和意圖(Intent)5種組件加以介紹。安全

活動(Activity)服務器

Activity是應用程序的表示層,爲用戶展現界面,一個Activity一般展示爲一個可視化的用戶界面,好比一個手機的聯繫人功能可能包含一個顯示聯繫人列表的Activity,一個可編輯聯繫人信息的Activity,以及其餘一些查看或修改信息的Activity。每個Activity都是相對獨立的,這些Activity一塊兒工做,共同組成了一個聯繫人應用程序。一個應用程序能夠包含一個或多個Activity,一般每一個應用程序運行後都會啓動一個Activity展示出第一個界面,在當前展示給用戶的Activity中啓動一個新的Activity或調用其餘應用程序的Acitivity,實現從一個界面跳轉到另一個界面。
ide

服務(Service)函數

Service在後臺運行沒有展示出用戶界面。它們能夠爲前臺的Activity提供數據源更新,並觸發通知。例如,用戶處理其餘事情的時候能夠啓動一個Service播放背景音樂,或者啓動郵件客戶端的一個Service經過間斷性地鏈接郵件服務器下載新郵件。spa

Service的另外一種重要的用途爲經過AIDL(Android Interface Definition Language,Android接口描述語言)實現進程間通訊。例如,在某一應用程序中,其餘應用程序組件能夠直接與該應用程序後臺運行的Service進行交互;另外一方面,多個應用程序經過Service,能夠在保證進程安全的前提下,實現它們之間的通訊 。設計

內容提供者(Content Provider)xml

Content Provider是一種應用間數據共享的機制,提供了多個應用程序共享存儲數據的方式,至關於一種跨應用程序的數據操做,一個應用程序能夠容許其餘應用程序經過Content Provider對其SQL數據,圖像,聲音或其餘數據類型進行增,刪,改,查等操做。Content Provider爲數據進行操做提供了統一的接口,爲應用程序提供了4個接口函數:intsert,update,delete及query,Content Provider屏蔽了數據操做的具體實現細節,應用程序只須要經過Content Provider調用相應接口函數便可完成操做,這種方式大大簡化了跨應用程序的數據操做。接口

廣播接收者(Broadcast Receiver)進程

Broadcast Receiver不執行任何任務。每一個Broadcast Receiver都會接收系統或應用程序產生的廣播通知,並對廣播通知作出響應。不少事件均可能致使系統廣播,例如手機所在時區發生變化,電池電量低,用戶改變系統語言設置等。應用程序一樣也能夠發送廣播通知,例如通知其餘應用程序某些數據已經下載完畢,可使用了。事件

一個應用程序能夠包含若干個Broadcast Receiver來響應它認爲很重要的通知。Broadcast Receiver能夠啓動一個Activity以響應接收到的信息,或者經過Notification Manager通知用戶。

意圖(Intent)

Intent的做用是在組件之間傳遞信息和協調工做。Android彼此獨立的應用組件須要互相調用,協調工做,最終整合成爲一個真正的Android應用。組件之間的協調工做主要由Intent完成,它起到Activity,Service,Content Provider之間聯繫的紐帶做用。Intent有許多具體的實現,但本質上它們表明着一組系列化的數據,可以在應用程序中傳播以實現某些功能。一個Intent包含了一次操做的信息,好比須要的動做,該動做相關的數據以及Android系統所須要的信息。Android則根據此Intent提供的信息進行描述,負責找到知足這些信息的組件,將Intent傳遞給該組件,並完成組件的調用。所以,Intent在這裏起着一個媒體中介的做用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的聯繫。

相關文章
相關標籤/搜索