Android中的Binder機制,一看就明瞭

Binder的做用

Binder主要用於進程間的通訊(IPC)。緩存

Binder的架構

Binder採用的是C/S架構(Client/Server架構)。架構

發送消息的是Client,接收消息的Server。代理

Binder機制

Client和Server分別屬於不一樣的進程,兩者須要ServiceManager來配合完成通訊。對象

Server向ServiceManager註冊服務,註冊過程是在Binder驅動的全局鏈表(binder_procs)插入Server端信息,ServiceManager的svcinfo列表則是來緩存這些註冊過的服務。進程

Client經過BinderProxy將請求參數傳遞給ServiceManager。ci

ServiceManager在svcinfo表中查詢到Server端註冊過的服務並返回Server端的代理。class

Client拿到Server端的代理對象,就能夠調用Server端的方法了。請求

這樣就實現了Client與Server跨進程通訊了。方法

相關文章
相關標籤/搜索