Binder主要用于进程间的通讯(IPC)。缓存
Binder采用的是C/S架构(Client/Server架构)。架构
发送消息的是Client,接收消息的Server。代理
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跨进程通讯了。方法