android 组件(activity,service,content provider,broadcast receiver,intent)详解
生活随笔
收集整理的這篇文章主要介紹了
android 组件(activity,service,content provider,broadcast receiver,intent)详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android應(yīng)用程序由若干個不同類型的組件組合而成,每一個組件具有其特定的安全保護設(shè)計方式,它們的安全直接影響到應(yīng)用程序的安全。Android應(yīng)用程序組件的主要類型有:活動(Activity),服務(wù)(Service),廣播接收者(Broadcast Receiver),內(nèi)容提供者(Content Provider),意圖(Intent),小組件(Widget),通知(Notification)等。其中最重要的是前5種。在決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時,應(yīng)該將它們列在AndroidManifest.xml文件中,這個文件用于聲明應(yīng)用程序組件以及它們的特性和要求。下面先分別對活動(Activity),服務(wù)(Service),內(nèi)容提供者(Content Provider),廣播接收者(Broadcast Receiver)和意圖(Intent)5種組件加以介紹。
活動(Activity)
Activity是應(yīng)用程序的表示層,為用戶展示界面,提供了可視的界面,與用戶進行交互;一個Activity通常展現(xiàn)為一個可視化的用戶界面,比如一個手機的聯(lián)系人功能可能包含一個顯示聯(lián)系人列表的Activity,一個可編輯聯(lián)系人信息的Activity,以及其他一些查看或修改信息的Activity。每一個Activity都是相對獨立的,這些Activity一起工作,共同組成了一個聯(lián)系人應(yīng)用程序。一個應(yīng)用程序可以包含一個或多個Activity,通常每個應(yīng)用程序運行后都會啟動一個Activity展現(xiàn)出第一個界面,在當前展現(xiàn)給用戶的Activity中啟動一個新的Activity或調(diào)用其他應(yīng)用程序的Acitivity,實現(xiàn)從一個界面跳轉(zhuǎn)到另外一個界面。
服務(wù)(Service)
Service在后臺運行,沒有展現(xiàn)出用戶界面。它們可以為前臺的Activity提供數(shù)據(jù)源更新,并觸發(fā)通知。例如,用戶處理其他事情的時候可以啟動一個Service播放背景音樂,或者啟動郵件客戶端的一個Service通過間斷性地連接郵件服務(wù)器下載新郵件。
Service的另一種重要的用途為通過AIDL(Android Interface Definition Language,Android接口描述語言)實現(xiàn)進程間通信。例如,在某一應(yīng)用程序中,其他應(yīng)用程序組件可以直接與該應(yīng)用程序后臺運行的Service進行交互;另一方面,多個應(yīng)用程序通過Service,可以在保證進程安全的前提下,實現(xiàn)它們之間的通信 。
內(nèi)容提供者(Content Provider)
Content Provider是一種應(yīng)用間數(shù)據(jù)共享的機制,提供了多個應(yīng)用程序共享存儲數(shù)據(jù)的方式,相當于一種跨應(yīng)用程序的數(shù)據(jù)操作,一個應(yīng)用程序可以允許其他應(yīng)用程序通過Content Provider對其SQL數(shù)據(jù),圖像,聲音或其他數(shù)據(jù)類型進行增,刪,改,查等操作。Content Provider為數(shù)據(jù)進行操作提供了統(tǒng)一的接口,為應(yīng)用程序提供了4個接口函數(shù):intsert,update,delete及query,Content Provider屏蔽了數(shù)據(jù)操作的具體實現(xiàn)細節(jié),應(yīng)用程序只需要通過Content Provider調(diào)用相應(yīng)接口函數(shù)即可完成操作,這種方式大大簡化了跨應(yīng)用程序的數(shù)據(jù)操作。
廣播接收者(Broadcast Receiver)
Broadcast Receiver不執(zhí)行任何任務(wù)。每個Broadcast Receiver都會接收系統(tǒng)或應(yīng)用程序產(chǎn)生的廣播通知,并對廣播通知做出響應(yīng)。很多事件都可能導致系統(tǒng)廣播,例如手機所在時區(qū)發(fā)生變化,電池電量低,用戶改變系統(tǒng)語言設(shè)置等。應(yīng)用程序同樣也可以發(fā)送廣播通知,例如通知其他應(yīng)用程序某些數(shù)據(jù)已經(jīng)下載完畢,可以使用了。
一個應(yīng)用程序可以包含若干個Broadcast Receiver來響應(yīng)它認為很重要的通知。Broadcast Receiver可以啟動一個Activity以響應(yīng)接收到的信息,或者通過Notification Manager通知用戶。
意圖(Intent)
Intent的作用是在組件之間傳遞信息和協(xié)調(diào)工作。Android彼此獨立的應(yīng)用組件需要互相調(diào)用,協(xié)調(diào)工作,最終整合成為一個真正的Android應(yīng)用。組件之間的協(xié)調(diào)工作主要由Intent完成,它起到Activity,Service,Content Provider之間聯(lián)系的紐帶作用。Intent有許多具體的實現(xiàn),但本質(zhì)上它們代表著一組系列化的數(shù)據(jù),能夠在應(yīng)用程序中傳播以實現(xiàn)某些功能。一個Intent包含了一次操作的信息,比如需要的動作,該動作相關(guān)的數(shù)據(jù)以及Android系統(tǒng)所需要的信息。Android則根據(jù)此Intent提供的信息進行描述,負責找到滿足這些信息的組件,將Intent傳遞給該組件,并完成組件的調(diào)用。因此,Intent在這里起著一個媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的聯(lián)系。
活動(Activity)
Activity是應(yīng)用程序的表示層,為用戶展示界面,提供了可視的界面,與用戶進行交互;一個Activity通常展現(xiàn)為一個可視化的用戶界面,比如一個手機的聯(lián)系人功能可能包含一個顯示聯(lián)系人列表的Activity,一個可編輯聯(lián)系人信息的Activity,以及其他一些查看或修改信息的Activity。每一個Activity都是相對獨立的,這些Activity一起工作,共同組成了一個聯(lián)系人應(yīng)用程序。一個應(yīng)用程序可以包含一個或多個Activity,通常每個應(yīng)用程序運行后都會啟動一個Activity展現(xiàn)出第一個界面,在當前展現(xiàn)給用戶的Activity中啟動一個新的Activity或調(diào)用其他應(yīng)用程序的Acitivity,實現(xiàn)從一個界面跳轉(zhuǎn)到另外一個界面。
服務(wù)(Service)
Service在后臺運行,沒有展現(xiàn)出用戶界面。它們可以為前臺的Activity提供數(shù)據(jù)源更新,并觸發(fā)通知。例如,用戶處理其他事情的時候可以啟動一個Service播放背景音樂,或者啟動郵件客戶端的一個Service通過間斷性地連接郵件服務(wù)器下載新郵件。
Service的另一種重要的用途為通過AIDL(Android Interface Definition Language,Android接口描述語言)實現(xiàn)進程間通信。例如,在某一應(yīng)用程序中,其他應(yīng)用程序組件可以直接與該應(yīng)用程序后臺運行的Service進行交互;另一方面,多個應(yīng)用程序通過Service,可以在保證進程安全的前提下,實現(xiàn)它們之間的通信 。
內(nèi)容提供者(Content Provider)
Content Provider是一種應(yīng)用間數(shù)據(jù)共享的機制,提供了多個應(yīng)用程序共享存儲數(shù)據(jù)的方式,相當于一種跨應(yīng)用程序的數(shù)據(jù)操作,一個應(yīng)用程序可以允許其他應(yīng)用程序通過Content Provider對其SQL數(shù)據(jù),圖像,聲音或其他數(shù)據(jù)類型進行增,刪,改,查等操作。Content Provider為數(shù)據(jù)進行操作提供了統(tǒng)一的接口,為應(yīng)用程序提供了4個接口函數(shù):intsert,update,delete及query,Content Provider屏蔽了數(shù)據(jù)操作的具體實現(xiàn)細節(jié),應(yīng)用程序只需要通過Content Provider調(diào)用相應(yīng)接口函數(shù)即可完成操作,這種方式大大簡化了跨應(yīng)用程序的數(shù)據(jù)操作。
廣播接收者(Broadcast Receiver)
Broadcast Receiver不執(zhí)行任何任務(wù)。每個Broadcast Receiver都會接收系統(tǒng)或應(yīng)用程序產(chǎn)生的廣播通知,并對廣播通知做出響應(yīng)。很多事件都可能導致系統(tǒng)廣播,例如手機所在時區(qū)發(fā)生變化,電池電量低,用戶改變系統(tǒng)語言設(shè)置等。應(yīng)用程序同樣也可以發(fā)送廣播通知,例如通知其他應(yīng)用程序某些數(shù)據(jù)已經(jīng)下載完畢,可以使用了。
一個應(yīng)用程序可以包含若干個Broadcast Receiver來響應(yīng)它認為很重要的通知。Broadcast Receiver可以啟動一個Activity以響應(yīng)接收到的信息,或者通過Notification Manager通知用戶。
意圖(Intent)
Intent的作用是在組件之間傳遞信息和協(xié)調(diào)工作。Android彼此獨立的應(yīng)用組件需要互相調(diào)用,協(xié)調(diào)工作,最終整合成為一個真正的Android應(yīng)用。組件之間的協(xié)調(diào)工作主要由Intent完成,它起到Activity,Service,Content Provider之間聯(lián)系的紐帶作用。Intent有許多具體的實現(xiàn),但本質(zhì)上它們代表著一組系列化的數(shù)據(jù),能夠在應(yīng)用程序中傳播以實現(xiàn)某些功能。一個Intent包含了一次操作的信息,比如需要的動作,該動作相關(guān)的數(shù)據(jù)以及Android系統(tǒng)所需要的信息。Android則根據(jù)此Intent提供的信息進行描述,負責找到滿足這些信息的組件,將Intent傳遞給該組件,并完成組件的調(diào)用。因此,Intent在這里起著一個媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的聯(lián)系。
總結(jié)
以上是生活随笔為你收集整理的android 组件(activity,service,content provider,broadcast receiver,intent)详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android manifest简介
- 下一篇: dalvik 与art 区别