androidbinder與handler的簡要理解

android的進程之間的通信 采用binder機制,我們先弄明白binder到底是什么。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設,貢覺企業(yè)網(wǎng)站建設,貢覺品牌網(wǎng)站建設,網(wǎng)站定制,貢覺網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,貢覺網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

其實binder屬于一個驅(qū)動,位于linux內(nèi)核層,它的作用是完成進程間的通信。

而binder機制包括4個方面,分別是client(客戶端),service(服務端),servicemanager(一個系統(tǒng)服務),binder驅(qū)動,

下面用一張圖來表示它們的關系:

android  binder與handler的簡要理解

可以看到 client,service,和servicemanager都運行在用戶空間,binder驅(qū)動則運行在內(nèi)核空間,現(xiàn)在簡單的分析一下各個部分,首先是client,一般就是我們的activity,service則是我們進行想要通信遠程服務。

servicemanager是一個守護進程,負責管理服務,所有的service都需要想它進行注冊,在binder機制中它給client提供查詢和獲取service的接口.

最后是binder驅(qū)動,它是一個字符設備驅(qū)動,client和service通過open()和ioctl()2個文件操作函數(shù)與它進行通信,從而實現(xiàn)了client向service發(fā)出請求,而service處理請求將并返回給client,簡單的說binder驅(qū)動就是提供了一切的底層支持。

理論說了那么多,現(xiàn)在簡單說一下,如何使用binder機制進行通信,分為以下幾個步驟:

1 獲取ServiceManager的對象引用

2 注冊我們的Service

3 在client中通過ServiceManager獲取Service對象的引用

4 在client中發(fā)送請求,service中返回結(jié)果。

關于binder機制就講這么多了,具體可參照下面這篇文章:

http://blog.csdn.net/yueliangniao1/article/details/7188549

接下來是android種handler機制的簡單理解。handler機制用于線程之間的通信,巧合的是線程通信機制也恰好由4個部分組成分別是:

1 looper 一個線程可以產(chǎn)生一個looper對象(不一定每一個線程都會有,得有相應的操作才行),負責管理該線程的消息隊列

2 handler 我們可以構(gòu)造一個handler對象來與looper對象進行溝通,實現(xiàn)push新的消息進入消息隊列,或是獲取looper從消息隊列中取出的消息

3 MessageQueue(消息隊列)存放線程放入的消息

4 Message 消息對象

線程就是通過這4個部分來負責通信的,下面提供一張圖來表示它們之間的關系:

android  binder與handler的簡要理解

handler機制一般用于更新UI,應用程序啟動的時候,將會創(chuàng)建一個主線程,主線程也就是所謂的UI線程,通過handler機制則子線程可以更改程序的UI。相關信息可以參考下面這篇文章:

http://blog.sina.com.cn/s/blog_8e1ceddc0101g6ao.html

一起學習,有錯誤請指出

當前文章:androidbinder與handler的簡要理解
網(wǎng)址分享:http://bm7419.com/article36/igsisg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、移動網(wǎng)站建設定制開發(fā)、網(wǎng)站策劃企業(yè)建站、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設