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跨进程通讯了。方法

相关文章
相关标签/搜索