21認識軟硬整合設計樣式.doc_第1頁
21認識軟硬整合設計樣式.doc_第2頁
21認識軟硬整合設計樣式.doc_第3頁
21認識軟硬整合設計樣式.doc_第4頁
21認識軟硬整合設計樣式.doc_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

21.認識軟硬整合設計樣式認識軟硬整合設計樣式-以Android的Binder機制為例By高煥堂一、簡介Android的Binder機制Android的Binder機制是Android應用框架(ApplicationFramework)里的重要機制。此機制用來系結(Bind)不同的Service,并進行跨進程(IPC)的遠距溝通。這個機制(Mechanism)配上Binder.java等抽象類別,就融入于Android應用框架里,為Android上的千千萬萬應用程序提供遠距溝通的管理及服務。本文將從高煥堂的MB樣式和CPU樣式來認識Android這個重要機制。一方面,從樣式看出Android機制的特性;另一方面,藉由Android實際情境深刻體會MB與CPU樣式的真諦,將來就可以將這兩個樣式應用于自己開發(fā)的應用框架或其它設計上。二、高煥堂的軟硬整合設計樣式(Pattern)于2007年4月12日,我在北京.中關村進行專題演講時,提出十個主要的軟硬整合設計樣式(可以到網站下載筆者于北京中關村的演講稿和錄音檔案。講題是:如何提升軟件設計力)。其中的第7和第8個樣式為:7:MBpatternIntent:降低adapter間之相依姓。Force1:系統(tǒng)經常需要與其它系統(tǒng)溝通。Force2:adapter是壁虎的尾巴,會隨system而PnP。Force3:在PnP掉adapter時,經常牽動多個其它adapter。Solution:設計adapter的共同adapter。Consequences:此共同adapter就是一個軟件主機板(softwareMB),而小adapter就成為它的端口(port)。圖1軟件主機板(softwareMB)是整合核心8:CPUpatternIntent:統(tǒng)一管理整合性的法則(rule)。Force1:各系統(tǒng)經常需要提供整體性的數據給它的使用者(user),其整合性之法則常分散于各系統(tǒng)里。Force2:為了維持整體和諧,需要對整合性法則進行統(tǒng)一管理。Solution:設計一個系統(tǒng),它代表整體(whole)而負責協(xié)調其它系統(tǒng),確保完整性和實時性。Consequences:此系統(tǒng)就是一個softwareCPU,成為整體的決策中心,它也很容易PnP它來面對法則的迅速變化。圖2軟件CPU是決策核心雖然CPU用來協(xié)調與控制其它系統(tǒng)(如A、P、.等系統(tǒng)),但就MB而言,CPU也是一個System,只是其角色和任務較特殊而已。三、藉由上述樣式來理解Binder機制在Binder機制里,除了眾多Service之外,還有兩個重要的組件,就是:ServiceManager和BinderKernelDriver(簡稱BinderKernel)。其中,BinderKernel提供許多界面(如IServiceManager)給各Service使用,它扮演著MB的角色。而ServiceManager扮演CPU角色。雖然ServiceManager用來協(xié)調與控制其它服務(如A、P、.等服務),但就BinderDriver而言,ServiceManager也是一個Service,只是其角色和任務較特殊而已。四、AndroidsBinder機制的運作邏輯Step-1.手機啟動時,ServiceManager先向BinderDriver登記(就像將CPU插到MB一樣)。Step-2.BinderDriver將它(即ServiceManager)視為第0個服務,于是誕生一個服務Handle#0來對應到它。圖3Step-3.ServiceA向BinderDriver取得Handle#0的界面:IServiceManager。圖4Step-4.ServiceA呼叫IServiceManager接口的addService(),將自己登錄進去。此時,BinderDriver會誕生一個新Handle#1來對應它;并且告知ServiceManager。圖5Step-5.ServiceP呼叫IServiceManager接口的getService()函數,要求連結(ConnectorBind)到特定的Service。此時,ServiceManager就將Handle#1傳給ServiceP,如下:圖6Step-6.于是,ServiceP與ServiceA就連結起來了。五、結語上述的BinderDriver是整合核心,相當于主機板(MB),合乎MB樣式之本意。而ServiceManager是決策核心,相當于CPU,合乎CPU樣式之本意。如此,至少有兩

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論