




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
21.認(rèn)識軟硬整合設(shè)計(jì)樣式認(rèn)識軟硬整合設(shè)計(jì)樣式-以Android的Binder機(jī)制為例By高煥堂一、簡介Android的Binder機(jī)制Android的Binder機(jī)制是Android應(yīng)用框架(ApplicationFramework)里的重要機(jī)制。此機(jī)制用來系結(jié)(Bind)不同的Service,并進(jìn)行跨進(jìn)程(IPC)的遠(yuǎn)距溝通。這個(gè)機(jī)制(Mechanism)配上Binder.java等抽象類別,就融入于Android應(yīng)用框架里,為Android上的千千萬萬應(yīng)用程序提供遠(yuǎn)距溝通的管理及服務(wù)。本文將從高煥堂的MB樣式和CPU樣式來認(rèn)識Android這個(gè)重要機(jī)制。一方面,從樣式看出Android機(jī)制的特性;另一方面,藉由Android實(shí)際情境深刻體會(huì)MB與CPU樣式的真諦,將來就可以將這兩個(gè)樣式應(yīng)用于自己開發(fā)的應(yīng)用框架或其它設(shè)計(jì)上。二、高煥堂的軟硬整合設(shè)計(jì)樣式(Pattern)于2007年4月12日,我在北京.中關(guān)村進(jìn)行專題演講時(shí),提出十個(gè)主要的軟硬整合設(shè)計(jì)樣式(可以到網(wǎng)站下載筆者于北京中關(guān)村的演講稿和錄音檔案。講題是:如何提升軟件設(shè)計(jì)力)。其中的第7和第8個(gè)樣式為:7:MBpatternIntent:降低adapter間之相依姓。Force1:系統(tǒng)經(jīng)常需要與其它系統(tǒng)溝通。Force2:adapter是壁虎的尾巴,會(huì)隨system而PnP。Force3:在PnP掉adapter時(shí),經(jīng)常牽動(dòng)多個(gè)其它adapter。Solution:設(shè)計(jì)adapter的共同adapter。Consequences:此共同adapter就是一個(gè)軟件主機(jī)板(softwareMB),而小adapter就成為它的端口(port)。圖1軟件主機(jī)板(softwareMB)是整合核心8:CPUpatternIntent:統(tǒng)一管理整合性的法則(rule)。Force1:各系統(tǒng)經(jīng)常需要提供整體性的數(shù)據(jù)給它的使用者(user),其整合性之法則常分散于各系統(tǒng)里。Force2:為了維持整體和諧,需要對整合性法則進(jìn)行統(tǒng)一管理。Solution:設(shè)計(jì)一個(gè)系統(tǒng),它代表整體(whole)而負(fù)責(zé)協(xié)調(diào)其它系統(tǒng),確保完整性和實(shí)時(shí)性。Consequences:此系統(tǒng)就是一個(gè)softwareCPU,成為整體的決策中心,它也很容易PnP它來面對法則的迅速變化。圖2軟件CPU是決策核心雖然CPU用來協(xié)調(diào)與控制其它系統(tǒng)(如A、P、.等系統(tǒng)),但就MB而言,CPU也是一個(gè)System,只是其角色和任務(wù)較特殊而已。三、藉由上述樣式來理解Binder機(jī)制在Binder機(jī)制里,除了眾多Service之外,還有兩個(gè)重要的組件,就是:ServiceManager和BinderKernelDriver(簡稱BinderKernel)。其中,BinderKernel提供許多界面(如IServiceManager)給各Service使用,它扮演著MB的角色。而ServiceManager扮演CPU角色。雖然ServiceManager用來協(xié)調(diào)與控制其它服務(wù)(如A、P、.等服務(wù)),但就BinderDriver而言,ServiceManager也是一個(gè)Service,只是其角色和任務(wù)較特殊而已。四、AndroidsBinder機(jī)制的運(yùn)作邏輯Step-1.手機(jī)啟動(dòng)時(shí),ServiceManager先向BinderDriver登記(就像將CPU插到MB一樣)。Step-2.BinderDriver將它(即ServiceManager)視為第0個(gè)服務(wù),于是誕生一個(gè)服務(wù)Handle#0來對應(yīng)到它。圖3Step-3.ServiceA向BinderDriver取得Handle#0的界面:IServiceManager。圖4Step-4.ServiceA呼叫IServiceManager接口的addService(),將自己登錄進(jìn)去。此時(shí),BinderDriver會(huì)誕生一個(gè)新Handle#1來對應(yīng)它;并且告知ServiceManager。圖5Step-5.ServiceP呼叫IServiceManager接口的getService()函數(shù),要求連結(jié)(ConnectorBind)到特定的Service。此時(shí),ServiceManager就將Handle#1傳給ServiceP,如下:圖6Step-6.于是,ServiceP與ServiceA就連結(jié)起來了。五、結(jié)語上述的BinderDriver是整合核心,相當(dāng)于主機(jī)板(MB),合乎MB樣式之本意。而ServiceManager是決策核心,相當(dāng)于CPU,合乎CPU樣式之本意。如此,至少有兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)物業(yè)前期合同協(xié)議
- 商場促銷車租售合同協(xié)議
- 武漢大學(xué)食堂合同協(xié)議
- 比亞迪換車協(xié)議書模板
- 商場定金協(xié)議書范本
- 商場車庫外包合同協(xié)議
- 戀愛簡約協(xié)議合同書范本
- 比亞迪車燈采購合同協(xié)議
- 醫(yī)生的求職自我評價(jià)(4篇)
- 快遞店轉(zhuǎn)讓門面合同協(xié)議
- 選擇性育種對犬類行為遺傳的影響
- 2024年北京市高考數(shù)學(xué)真題試卷及答案
- 走近湖湘紅色人物智慧樹知到答案2024年湖南工商大學(xué)
- DB51-T 5071-2011 蒸壓加氣混凝土砌塊墻體自保溫工程技術(shù)規(guī)程
- Elephant'sfriends繪本閱讀(課件)人教PEP版英語三年級上冊
- AQ6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范
- 多發(fā)性骨髓瘤腎損傷診治指南(2024版)
- 2024年中考數(shù)學(xué)反比例函數(shù)-選擇題(壓軸)(試題)
- 2024-2030年中國吸脂器行業(yè)現(xiàn)狀動(dòng)態(tài)與需求趨勢預(yù)測研究報(bào)告
- 【渠道視角下伊利股份營運(yùn)資金管理存在的問題及優(yōu)化建議探析9000字(論文)】
- 患者呼吸心跳驟停的應(yīng)急預(yù)案
評論
0/150
提交評論