讓你明白,Android常用組件四大天王
Android操作系統(tǒng)是一個(gè)復(fù)雜的平臺(tái),其中包含了多種功能模塊,比如用戶界面系統(tǒng)、系統(tǒng)間通信系統(tǒng)、數(shù)據(jù)庫系統(tǒng)和定位服務(wù)等,各種功能模塊之間相互配合為應(yīng)用程序提供服務(wù)。
Android架構(gòu)里定義了4種應(yīng)用程序,用戶的Android應(yīng)用程序都是由這4種構(gòu)建組成的。更多詳細(xì)干貨請看帶你了解Android四大基本組件。
活動(dòng)activities——桌面操作系統(tǒng)中獨(dú)立的應(yīng)用程序類似
可以通過查詢queries和意圖intents向其他活動(dòng)或服務(wù)services獲取數(shù)據(jù)和服務(wù)。
服務(wù)services——后臺(tái)程序daemons類似
啟動(dòng)以后一直在后臺(tái)運(yùn)行,直到手機(jī)設(shè)備關(guān)機(jī)為止。服務(wù)通常不顯示用戶界面
如:用戶可以播放mp3的時(shí)刻運(yùn)行其他一些應(yīng)用程序。在退出操作界面后仍然維持程序的運(yùn)行。
廣播和意圖的接收器broadcast and Intent Receivers
用戶處理應(yīng)用程序出發(fā)的服務(wù)請求。廣播接收器用戶處理系統(tǒng)級(jí)別的事件消息,這些消息可能是android系統(tǒng)本身發(fā)出的,也可能是來自系統(tǒng)中正在運(yùn)行的其他應(yīng)用程序。一個(gè)活動(dòng)或者服務(wù)通過實(shí)現(xiàn)意圖接收器來向其他應(yīng)用程序提供服務(wù),意圖接收器就是一段可執(zhí)行的代碼,負(fù)責(zé)響應(yīng)其他活動(dòng)或者服務(wù)發(fā)出的數(shù)據(jù)或者服務(wù)請求。想要發(fā)送請求的活動(dòng)、客戶端首先需要?jiǎng)?chuàng)建一個(gè)意圖對(duì)象,然后將這個(gè)意圖對(duì)象提交給android操作系統(tǒng),***由android操作系統(tǒng)決定使用哪個(gè)應(yīng)用程序處理該意圖。
內(nèi)容提供器Content providers
用戶向其他活動(dòng)或服務(wù)提供數(shù)據(jù)服務(wù)。內(nèi)容提供器通過使用標(biāo)準(zhǔn)URI(uniform resource identifier)接口為其他應(yīng)用程序提供數(shù)據(jù)服務(wù),數(shù)據(jù)的請求者甚至不需要知道服務(wù)的提供者是誰。
比如:某個(gè)應(yīng)用程序發(fā)出了一個(gè)查詢某個(gè)聯(lián)系人信息的消息,請求格式如下:
Content://contacts/people
Android操作系統(tǒng)就會(huì)查詢系統(tǒng)中注冊了這個(gè)URI格式的內(nèi)容提供器,并將請求發(fā)送給響應(yīng)的應(yīng)用程序(如果該應(yīng)用程序還沒有啟動(dòng),系統(tǒng)會(huì)自動(dòng)將其啟動(dòng))。如果有多個(gè)應(yīng)用程序都注冊了同樣的URI格式,那么操作系統(tǒng)就會(huì)提示用戶選擇其中一個(gè)。
URI和意圖機(jī)制松散耦合是的各種應(yīng)用程序可以和諧地一起工作。