Android中的Binder机制,一看就明了

480 阅读1分钟

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。

ServiceManager在svcinfo表中查询到Server端注册过的服务并返回Server端的代理。

Client拿到Server端的代理对象,就可以调用Server端的方法了。

这样就实现了Client与Server跨进程通信了。