自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)介紹Android配置信息內(nèi)容

移動(dòng)開發(fā) Android
四大組件說完了,四大組件幕后的英雄也該出場了,那就是每個(gè)應(yīng)用都會(huì)有一份的Android配置信息,名稱是AndroidManifest.xml,在工程的根目錄下。

有一堆接口標(biāo)準(zhǔn)封裝完整的組件放在哪里,想用的時(shí)候取上幾個(gè)一搭配,整個(gè)程序就構(gòu)建完成了,但前提是要深入理解到底什么是Android配置信息,及他的信息是怎么完成。

在這個(gè)配置文件中,不僅會(huì)描述一些應(yīng)用相關(guān)的信息,很重要的,會(huì)包含一個(gè)應(yīng)用中所有組件的信息。如果你派生Activity或者Service實(shí)現(xiàn)了一個(gè)相關(guān)的類。這只是把它組件化的第一步,你需要把這個(gè)類的相關(guān)信息寫到Android配置信息中,它才會(huì)作為一個(gè)組件被應(yīng)用到,否則只能默默無聞的黯淡度過余生。

擺了一幅圖出來,這次不是偷來的,是敝帚自珍原創(chuàng),所以沒有意外的畫的很丑,但基本還是可以體現(xiàn)出一些意思。在In Others的部分。這里是一般平臺(tái)應(yīng)用之間通信和交互的模型,每個(gè)應(yīng)用都有很強(qiáng)烈的應(yīng)用邊界(往往表現(xiàn)為進(jìn)程邊界...),App 1的還是App 2的,分得很是清楚。

每個(gè)應(yīng)用內(nèi)部,都有自己的邏輯去切分功能組件,這樣的切分通常沒有什么標(biāo)準(zhǔn),率性而為。應(yīng)用間的交互邏輯也比較零散。App 1與App 2交互,往往需要明確知道對方應(yīng)用的具體信息,比如進(jìn)程ID,進(jìn)程名稱之類的,這樣使得應(yīng)用和應(yīng)用之間的聯(lián)系,變得很生硬。

而上層應(yīng)用和系統(tǒng)應(yīng)用的通信,往往有很多特定的模式,這種模式,很可能是無法直接應(yīng)用在普通應(yīng)用之間的,換而言之,系統(tǒng)應(yīng)用是有一定特殊性的。重點(diǎn),在圖的下半部,描述的是Android的應(yīng)用情形。在Android中,應(yīng)用的邊界,在組件這個(gè)層面,是極度模糊,什么進(jìn)程、什么應(yīng)用,都可以不必感知到。

舉個(gè)例子,App 1,實(shí)現(xiàn)了A和B兩個(gè)組件,App 2,實(shí)現(xiàn)了C這個(gè)組件。A和C,都想使用B這個(gè)組件,那么它們的使用方式是完全一致的,都需要通過系統(tǒng)核心的組件識(shí)別和通信機(jī)制。

找到和使用組件B。A,雖說和B是一個(gè)娘胎里蹦出來的,很不好意思,沒有任何特殊的后面和捷徑,還是要跑規(guī)矩的途徑才能用到,一片和諧社會(huì)的景象油然而生。在Android中,所有組件的識(shí)別和消息傳遞邏輯都必須依賴底層核心來進(jìn)行(通信可以沒有底層核心的參與,比如一旦Service找到了,就可以和它產(chǎn)生持久的通信...)。

沒有底層核心的牽線搭橋,任何兩個(gè)組件都無法產(chǎn)生聯(lián)系。比如一個(gè)Activity,跳到另一個(gè)Activity,必須要向底層核心發(fā)起一個(gè)Intent,有底層解析并認(rèn)可后,會(huì)找到另一個(gè)Activity。

把相關(guān)消息和數(shù)據(jù)傳給它。一個(gè)Activity想使用Content Provider中的數(shù)據(jù),必須通過底層核心解析相關(guān)的uri,定位到這個(gè)Content Provider,把參數(shù)傳遞給。然后返回Activity需要的Cursor。這樣的設(shè)計(jì),保證了底層核心對所有組件的絕對掌控權(quán)和認(rèn)知權(quán),使得搭積木似的開發(fā)變成可能。

為了,使得核心系統(tǒng)能夠完整的掌握每個(gè)組件的信息,這就需要Android配置信息文件了。配置文件,就是將組件插到底層核心上的這個(gè)插頭。只有通過這個(gè)插頭插在底層核心的插座上(不要亂想,非十八禁...)。

組件才能夠發(fā)光發(fā)熱,閃耀光芒。組件的Android配置信息在我看來主要包含兩個(gè)方面,一部分是描述如何認(rèn)知。比如,Activity、Service、Broadcast Receiver都會(huì)有名字信息。和希望能夠把握的Intent信息(姑且看成消息好了...)。

Content Provider會(huì)有一個(gè)描述其身份的uri。當(dāng)其他組件通過這樣的名字或者Intent,就可以找到它。另一部分是運(yùn)行相關(guān)的信息。這個(gè)組件,期望怎么來運(yùn)行,放在單獨(dú)的進(jìn)程,還是和調(diào)用者一個(gè)進(jìn)程,還是找相關(guān)的其他組件擠在同一個(gè)進(jìn)程里面。

通過前續(xù)內(nèi)容,也許可以幫助大家對Android組件有個(gè)初略的了解。但這些了解都還停留在靜態(tài)層面,程序是個(gè)動(dòng)態(tài)的概念,關(guān)于各個(gè)組件具體是怎么聯(lián)系在一起的,如何手拉手運(yùn)行起來完成一項(xiàng)功能的,這便是后話了。

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析
  2. Android SMS短信服務(wù)相關(guān)概念簡述
  3. PythonAndroid數(shù)據(jù)庫相關(guān)代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應(yīng)用程序的四個(gè)關(guān)鍵點(diǎn)
責(zé)任編輯:chenqingxiang 來源: CSDN
相關(guān)推薦

2010-07-27 14:59:08

telnet程序

2009-11-17 17:00:47

寬帶路由器配置

2009-12-17 10:08:06

Cisco路由器配置信

2021-01-27 14:34:02

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全IoT

2009-12-22 15:02:40

WCF限流

2010-01-05 17:39:10

.NET Framew

2010-01-27 17:36:55

Android The

2019-09-24 16:15:03

架構(gòu)配置代碼

2009-07-01 10:12:40

JSP環(huán)境配置JSP引擎

2010-03-11 09:20:54

Ubuntu網(wǎng)絡(luò)配置

2009-12-21 13:27:45

WCF服務(wù)配置信息

2010-08-06 14:53:35

思科路由器配置信息

2010-03-05 16:58:02

Android Mar

2010-01-08 15:03:12

VB.NET類屬性

2010-01-06 17:20:38

.Net Framew

2010-02-04 16:37:40

Android程序

2010-02-06 17:43:51

Android應(yīng)用

2010-02-06 10:04:10

Android啟動(dòng)模式

2010-03-16 09:04:23

2010-03-02 14:01:58

Linux硬件信息命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)