【移動應(yīng)用開發(fā)技術(shù)】android binder與handler的簡要理解_第1頁
【移動應(yīng)用開發(fā)技術(shù)】android binder與handler的簡要理解_第2頁
【移動應(yīng)用開發(fā)技術(shù)】android binder與handler的簡要理解_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】androidbinder與handler的簡要理解

android的進(jìn)程之間的通信采用binder機(jī)制,我們先弄明白binder到底是什么。其實(shí)binder屬于一個驅(qū)動,位于linux內(nèi)核層,它的作用是完成進(jìn)程間的通信。而binder機(jī)制包括4個方面,分別是client(客戶端),service(服務(wù)端),servicemanager(一個系統(tǒng)服務(wù)),binder驅(qū)動,下面用一張圖來表示它們的關(guān)系:可以看到client,service,和servicemanager都運(yùn)行在用戶空間,binder驅(qū)動則運(yùn)行在內(nèi)核空間,現(xiàn)在簡單的分析一下各個部分,首先是client,一般就是我們的activity,service則是我們進(jìn)行想要通信遠(yuǎn)程服務(wù)。servicemanager是一個守護(hù)進(jìn)程,負(fù)責(zé)管理服務(wù),所有的service都需要想它進(jìn)行注冊,在binder機(jī)制中它給client提供查詢和獲取service的接口.最后是binder驅(qū)動,它是一個字符設(shè)備驅(qū)動,client和service通過open()和ioctl()2個文件操作函數(shù)與它進(jìn)行通信,從而實(shí)現(xiàn)了client向service發(fā)出請求,而service處理請求將并返回給client,簡單的說binder驅(qū)動就是提供了一切的底層支持。理論說了那么多,現(xiàn)在簡單說一下,如何使用binder機(jī)制進(jìn)行通信,分為以下幾個步驟:1獲取ServiceManager的對象引用2注冊我們的Service3在client中通過ServiceManager獲取Service對象的引用4在client中發(fā)送請求,service中返回結(jié)果。關(guān)于binder機(jī)制就講這么多了,具體可參照下面這篇文章:/yueliangniao1/article/details/7188549接下來是android種handler機(jī)制的簡單理解。handler機(jī)制用于線程之間的通信,巧合的是線程通信機(jī)制也恰好由4個部分組成分別是:1looper一個線程可以產(chǎn)生一個looper對象(不一定每一個線程都會有,得有相應(yīng)的操作才行),負(fù)責(zé)管理該線程的消息隊(duì)列2handler我們可以構(gòu)造一個handler對象來與looper對象進(jìn)行溝通,實(shí)現(xiàn)push新的消息進(jìn)入消息隊(duì)列,或是獲取looper從消息隊(duì)列中取出的消息3MessageQueue(消息隊(duì)列)存放線程放入的消息4Message消息對象線程就是通過這4個部分來負(fù)責(zé)通信的,下面提供一張圖來表示它們之間的關(guān)系:handler機(jī)制一般用于更新UI,應(yīng)用程序啟動的時候,將會創(chuàng)建一個主線程,主線程也就是所謂的UI線程,通過handler機(jī)制則子線程可以更改程序

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論