版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、roidroidBinderBinder設(shè)計與實現(xiàn)設(shè)計與實現(xiàn)–設(shè)計篇設(shè)計篇摘要摘要Binder是roid系統(tǒng)進(jìn)程間通信(IPC)方式之一。Linux已經(jīng)擁有管道、systemVIPC、socket等IPC手段,卻還要倚賴Binder來實現(xiàn)進(jìn)程間通信,說明Binder具有無可比擬的優(yōu)勢。深入了解Binder并將之與傳統(tǒng)IPC做對比有助于我們深入領(lǐng)會進(jìn)程間通信的實現(xiàn)和性能優(yōu)化。本文將對Binder的設(shè)計細(xì)節(jié)做一個全面的闡述,首先通過介紹Bi
2、nder通信模型和Binder通信協(xié)議了解Binder的設(shè)計需求;然后分別闡述Binder在系統(tǒng)不同部分的表述方式和起的作用;最后還會解釋Binder在數(shù)據(jù)接收端的設(shè)計考慮,包括線程池管理,內(nèi)存映射和等待隊列管理等。通過本文對Binder的詳細(xì)介紹以及與其它IPC通信方式的對比,讀者將對Binder的優(yōu)勢和使用Binder作為roid主要IPC方式的原因有深入了解。1引言引言基于ClientServer的通信方式廣泛應(yīng)用于從互聯(lián)網(wǎng)和數(shù)據(jù)
3、庫訪問到嵌入式手持設(shè)備內(nèi)部通信等各個領(lǐng)域。智能手機平臺特別是roid系統(tǒng)中,為了向應(yīng)用開發(fā)者提供豐富多樣的功能,這種通信方式更是無處不在,諸如媒體播放,視音頻捕獲,到各種讓手機更智能的傳感器(加速度、方位、溫度、光亮度等)都由不同的Server負(fù)責(zé)管理,應(yīng)用程序只需作為Client與這些Server建立連接便可以使用這些服務(wù),花很少的時間和精力就能開發(fā)出令人眩目的功能。ClientServer方式的廣泛采用對進(jìn)程間通信(IPC)機制是一
4、個挑戰(zhàn)。目前l(fā)inux支持的IPC包括傳統(tǒng)的管道、SystemVIPC、即消息隊列共享內(nèi)存信號量,以及socket中只有socket支持ClientServer的通信方式。當(dāng)然也可以在這些底層機制上架設(shè)一套協(xié)議來實現(xiàn)ClientServer通信,但這樣增加了系統(tǒng)的復(fù)雜性,在手機這種條件復(fù)雜,資源稀缺的環(huán)境下可靠性也難以保證。另一方面是傳輸性能。socket作為一款通用接口,其傳輸效率低,開銷大,主要用在跨網(wǎng)絡(luò)的進(jìn)程間通信和本機上進(jìn)程間的
5、低速通信。消息隊列和管道采用存儲轉(zhuǎn)發(fā)方式,即數(shù)據(jù)先從發(fā)送方緩存區(qū)拷貝到內(nèi)核開辟的緩存區(qū)中,然后通信必須實現(xiàn)以下兩點:一是server必須有確定的訪問接入點或者說地址來接受Client的請求,并且Client可以通過某種途徑獲知Server的地址;二是制定CommReply協(xié)議來傳輸數(shù)據(jù)。例如在網(wǎng)絡(luò)通信中Server的訪問接入點就是Server主機的IP地址端口號,傳輸協(xié)議為TCP協(xié)議。對Binder而言,Binder可以看成Server
6、提供的實現(xiàn)某個特定服務(wù)的訪問接入點,Client通過這個‘地址’向Server發(fā)送請求來使用該服務(wù);對Client而言,Binder可以看成是通向Server的管道入口,要想和某個Server通信首先必須建立這個管道并獲得管道入口。與其它IPC不同,Binder使用了面向?qū)ο蟮乃枷雭砻枋鲎鳛樵L問接入點的Binder及其在Client中的入口:Binder是一個實體位于Server中的對象,該對象提供了一套方法用以實現(xiàn)對服務(wù)的請求,就像類
7、的成員函數(shù)。遍布于client中的入口可以看成指向這個binder對象的‘指針’,一旦獲得了這個‘指針’就可以調(diào)用該對象的方法訪問server。在Client看來,通過Binder‘指針’調(diào)用其提供的方法和通過指針調(diào)用其它任何本地對象的方法并無區(qū)別,盡管前者的實體位于遠(yuǎn)端Server中,而后者實體位于本地內(nèi)存中?!羔槨荂的術(shù)語,而更通常的說法是引用,即Client通過Binder的引用訪問Server。而軟件領(lǐng)域另一個術(shù)語‘句柄’也
8、可以用來表述Binder在Client中的存在方式。從通信的角度看,Client中的Binder也可以看作是ServerBinder的‘代理’,在本地代表遠(yuǎn)端Server為Client提供服務(wù)。本文中會使用‘引用’或‘句柄’這個兩個廣泛使用的術(shù)語。面向?qū)ο笏枷氲囊雽⑦M(jìn)程間通信轉(zhuǎn)化為通過對某個Binder對象的引用調(diào)用該對象的方法,而其獨特之處在于Binder對象是一個可以跨進(jìn)程引用的對象,它的實體位于一個進(jìn)程中,而它的引用卻遍布于系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于Binder的Android用戶隱私數(shù)據(jù)安全增強技術(shù)實現(xiàn).pdf
- Android進(jìn)程間通信機制Binder的分析與對比研究.pdf
- android畢業(yè)設(shè)計--基于android的音樂播放的設(shè)計與實現(xiàn)
- Android動態(tài)監(jiān)控系統(tǒng)設(shè)計與實現(xiàn).pdf
- android應(yīng)用安全方案的設(shè)計與實現(xiàn)
- android課程設(shè)計---基于android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)
- 基于android的手機計步器設(shè)計與實現(xiàn)
- Android顯示系統(tǒng)的設(shè)計與實現(xiàn).pdf
- Android應(yīng)用搜索的設(shè)計與實現(xiàn).pdf
- 基于android移動學(xué)習(xí)平臺的設(shè)計與實現(xiàn)
- android掌上社區(qū)畢業(yè)設(shè)計論文 基于android平臺的掌上社區(qū)設(shè)計與實現(xiàn)
- 基于android音樂播放器設(shè)計與實現(xiàn)
- 基于Android的NFC模塊設(shè)計與實現(xiàn).pdf
- 基于Android的MOA系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于android的旅游app的設(shè)計與實現(xiàn)
- 基于android的社交電視設(shè)計與實現(xiàn)
- 基于android的查詢字典的設(shè)計與實現(xiàn)
- 基于android車載導(dǎo)航系統(tǒng)設(shè)計與實現(xiàn)
- 基于android的日歷系統(tǒng)的設(shè)計與實現(xiàn)
- 基于Android的GPS模塊設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論