欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android中的Binder機制的簡要理解

系統 2444 0

我們知道,在Android系統中,每一個應用程序都運行在獨立的進程中,這也保證了當其中一個程序出現異常而不會影響另一個應用程序的正常運轉。在許多情況下,我們activity都會與各種系統的service打交道,很顯然,我們寫的程序中activity與系統service肯定不是同一個進程,但是它們之間是怎樣實現通信的呢?Binder是android中一種實現進程間通信(IPC)的方式之一。

了解Binder

1.binder用來做什么?用來實現不同進程之間的通信。

2.Binder是什么?binder屬于一個驅動,工作在linux層面,運行在內核態,它的操作完成是基于一段內存。所以我們開發的程序中對binder的使用都是通過系統的調用來完成的。

3.binder是怎樣實現進程通信的?我們來通過Binder的架構來了解它實現進程間通信(IPC)的過程。

Binder架構由服務端,binder驅動,客戶端三個部分構成。如圖所示。

?


Android中的Binder機制的簡要理解
?

?



Android中的Binder機制的簡要理解

其中服務端,客戶端處在用戶空間,而binder驅動處在內核空間。

服務器端。一個Binder服務器端就是一個Binder類的對象。當創建一個Binder對象后,內部就會開啟一個線程,這個線程用于接收binder驅動發送的信息,收到消息后,會執行相關的服務代碼。、

Binder驅動。當服務端成功創建一個Binder對象后,Binder驅動也會相應創建一個mRemote對象,該對象的類型也是Binder類。客戶就可以借助這個mRemote對象來訪問遠程服務。

客戶端。客戶端要想訪問Binder的遠程服務,就必須獲取遠程服務的Binder對象在binder驅動層對應的mRemote引用。當獲取到mRemote對象的引用后,就可以調用相應Binder對象的服務了。

在這里,我們可以看到,客戶端是通過Binder驅動來調用服務端的相關服務。首先,在服務端創建一個Binder對象,然后相應在Binder驅動中創建一個Binder對象,接著客戶端通過獲取Binder驅動中Binder對象的引用來調用服務端的服務。在Binder機制中正是借著Binder驅動將不同進程間的組件bind(粘連)在一起,實現通信。

為什么android選用Binder來實現進程間通信?

一、可靠性。在移動設備上,通常采用基于Client-Server的通信方式來實現互聯網與設備間的內部通信。目前linux支持IPC包括傳統的管道,System V IPC,即消息隊列/共享內存/信號量,以及socket中只有socket支持Client-Server的通信方式。Android系統為開發者提供了豐富進程間通信的功能接口,媒體播放,傳感器,無線傳輸。這些功能都由不同的server來管理。開發都只關心將自己應用程序的client與server的通信建立起來便可以使用這個服務。毫無疑問,如若在底層架設一套協議來實現Client-Server通信,增加了系統的復雜性。在資源有限的手機 上來實現這種復雜的環境,可靠性難以保證。

二、傳輸性能。socket主要用于跨網絡的進程間通信和本機上進程間的通信,但傳輸效率低,開銷大。消息隊列和管道采用存儲-轉發方式,即數據先從發送方緩存區拷貝到內核開辟的一塊緩存區中,然后從內核緩存區拷貝到接收方緩存區,其過程至少有兩次拷貝。雖然共享內存無需拷貝,但控制復雜。比較各種IPC方式的數據拷貝次數。共享內存:0次。Binder:1次。Socket/管道/消息隊列:2次。

三、安全性。Android是一個開放式的平臺,所以確保應用程序安全是很重要的。Android對每一個安裝應用都分配了UID/PID,其中進程的UID是可用來鑒別進程身份。傳統的只能由用戶在數據包里填寫UID/PID,這樣不可靠,容易被惡意程序利用。而我們要求由內核來添加可靠的UID。

所以,出于可靠性、傳輸性、安全性。android建立了一套新的進程間通信方式。

Android中的Binder機制的簡要理解


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人毛片在线观看 | 拍真实国产伦偷精品 | 色偷偷免费| 亚洲精品视频免费观看 | 亚洲美女精品 | 久久久久亚洲精品 | 亚洲一区二区三 | 欧美国产成人一区二区三区 | 美女用震蛋叫爽的视频95视频 | 日韩高清中文字幕 | 12306午夜被窝播播影院yw188 | 国变精品美女久久久久av爽 | 青娱乐视觉盛宴在线 | 香蕉视频在线观看免费 | 亚洲最大在线视频 | 美腿丝袜中文字幕 | 久久久国产99久久国产一 | 久久精品视频99 | 99热这里只有精品久久免费 | 精品一区二区国语对白 | 亚洲成人在线免费 | 日本美女一区二区三区 | 一本色道久久综合 | 久久综合九色综合97婷婷群聊 | 精品国产一区二区三区免费 | 日日夜av| 欧美精品在线一区 | 国产做国产爱免费视频 | 欧美一级做一级做片性十三 | 人人曰 | 在线不欧美 | 五月天丁香久久 | 久久久99国产精品免费 | 香蕉久草在线 | 国产在线精品二区韩国演艺界 | 麻豆视频秘密入口 | www.日韩 | 日韩视频在线精品视频免费观看 | 亚洲毛片无码专区亚洲A片 日本高清www午色夜黄 | 激情视频网站 | 五月婷婷中文 |