淺談android binder機制

binder機制 是谷歌優化在android上更適合終端的IPC(多進程通訊方式),知足系統對通訊方式,傳輸性能和安全性的要求。android

特性:安全

1. 用驅動程序來推動進程間的通訊。
2. 經過共享內存來提升性能。
3. 進程間同步調用以及異步調用異步

...........................................性能

IADL是用binder機制進行IPC的典型表明優化

IADL是一個接口描述文件,規定IPC通訊的接口,通常使用於client/server模式server

c/s雙方寫好IADL後,系統會生成一個繼承binder以及實現這個接口的類---Stub對象

XXXInterface.Stub extend binder implement XXXInterface繼承

server方:接口

能夠經過Stub類,實現接口功能,向client提供接口相關的服務進程

client方:

經過server提供的binder,來使用服務。

 

client/server是如何經過binder進行通訊的呢?

咱們能夠看到Stub提供了3個重要的方法,以及遠程binder Proxy類。

asInterface(Ibinder obj)

transaction(...)

ontransaction(...)

 

client經過asInterface(binder) 這個方法,把server提供的binder 生成 binder Proxy對象

經過 transaction()來與遠程binder對象進行通訊。

到底如何實現通訊呢?

首先把數據存入Parcel中,經過binder文件驅動通知,經過Ashmen內存共享通訊

具體如何作的,之後有時間在講。

server經過 ontransaction()方法,把處理結果返回給client。

相關文章
相關標籤/搜索