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