一、了解
- Binder通信机制采用C/S架构,其框架中主要有4个角色,Client、Server、ServiceManager、Binder驱动,其中Client、Server、ServiceManager运行在用户空间,Binder驱动运行在内核空间。
- Client代表客户端进程,Server代表客户端进程提供各种服务,如音视频等。
- Service Manager用来管理各种系统服务。
- Binder驱动提供进程间通信的能力。
二、整个流程
-
首先Server进程向Binder驱动发起服务注册请求,Binder驱动将注册请求转发给ServiceManager进程,ServiceManager进程将该Server进程添加到svc_list中使其注册成功。
-
接着Client向Binder驱动发起获取服务请求,并传递要获取的服务名称,Binder驱动将该请求转发给ServiceManager进程,ServiceManager进程去svc_list中查找Client需要的Server对应的服务信息,最后通过Binder驱动将上述服务信息返回给Client进程。