幾分鐘教會您使用Android基本組件
Android基本組件在日常生活中的應(yīng)用還是很普遍的,但是要熟練的使用Android基本組件的前提是先要了解下什么是Android基本組件?以及Android基本組件的組成部分。
Intent包含6中基本信息,分別為:目標(biāo)組件名稱,Action(動作),Data(數(shù)據(jù)),Category(類別),Extra(額外信息),F(xiàn)lag(標(biāo)志)。Intent分為顯示Intent和隱式Intent。顯示Intent是在目標(biāo)組件名稱中指定目標(biāo)組件的包名和類名,Intent請求會直接發(fā)送給這個組件。
由于不可能知道其他應(yīng)用的類名及包名,所以顯示Intent不可能用于不同應(yīng)用程序,它只能在一個應(yīng)用程序中傳遞消息。隱式Intent查找目標(biāo)組件的方法是根據(jù)IntentFilter。每個Android基本組件(Activity,Service,BroadcastReceiver)都需要在AndroidManifest.xml中聲明自己的IntentFilter。
以描述這個組件可以接受的Intent請求。Android系統(tǒng)會根據(jù)Intent中的信息查找IntentFilter,看是否匹配,以確定接受Intent請求的組件。影響Android匹配的因素是Intent中的Action、Data、Category。
隱式Intent不需要目標(biāo)組件的名稱來激活該組件,這樣可以應(yīng)用于在不同應(yīng)用程序之間傳遞消息。下面是我對于Intent機(jī)制的一種理解,不知猜的對不對。 在Android中,系統(tǒng)維護(hù)一個數(shù)據(jù)結(jié)構(gòu),用于描述每種Intent可以匹配的組件??梢圆捎肏ashtable<key Intent類型(Action), value 可以匹配的組件的列表>
這樣就可以把不同類型的Intent映射為可以處理該Intent的組件。在每個應(yīng)用程序安裝時,系統(tǒng)搜索AndroidManifest.xml。根據(jù)每個組件的IntentFilter信息,調(diào)用Hashtable.put(IntentFilter.Action, 組件)把每個組件注冊到系統(tǒng)中。
Android基本組件就可以輕松的維護(hù)每個組件可以處理的Intent信息。當(dāng)某個組件發(fā)出一個Intent請求時Android系統(tǒng)會根據(jù)Intent的信息調(diào)用Hashtable.get(Intent.Action)得到所有與之匹配的組件列表,從而找到可以響應(yīng)該Intent的組件。
正是由于隱式Intent的存在,才可以實現(xiàn)不同應(yīng)用程序可以共享彼此的功能組件這是優(yōu)勢。一個應(yīng)用程序要啟動其他應(yīng)用程序的一個組件時只要傳遞正確的Intent即可,從這一點上看Android系統(tǒng)是一個組件的集合,它的運(yùn)行的基本單位是組件,而不是一個應(yīng)用程序。
白色版HTC G1Android平臺的研發(fā)隊伍陣容強(qiáng)大,包括摩托羅拉、Google、HTC(宏達(dá)電)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中國移動在內(nèi)的34家企業(yè),都將基于該平臺開發(fā)手機(jī)的新型業(yè)務(wù),應(yīng)用之間的通用性和互聯(lián)性將在最大程度上得到保持。
“開放手機(jī)聯(lián)盟”表示,Android平臺可以促使移動設(shè)備的創(chuàng)新,讓用戶體驗到最優(yōu)越的移動服務(wù),同時,開發(fā)商也將得到一個新的開放級別,更方便的進(jìn)行協(xié)同合作,從而保障新型移動設(shè)備的研發(fā)速度。
34家企業(yè)的加盟,也將大大降低新型手機(jī)設(shè)備的研發(fā)成本,完全整合的“全移動功能性產(chǎn)品”成為“開放手機(jī)聯(lián)盟”的最終目標(biāo)。這34家企業(yè)中并不包含把持Symbian的諾基亞,以及憑借著iPhone風(fēng)光正在的蘋果公司,美國運(yùn)營商AT&T和Verizon,當(dāng)然微軟沒有加入,獨樹一幟的加拿大RIM和他們的Blackberry也被擋在門外。
【編輯推薦】