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跨进程通信了。