Android系统中的Binder框架图如下:
1、Binder是Android提供的一套进程间通信框架。
2、系统服务ActivityManagerService,ServiceManager等都是在单独进程中的,使用binder和应用进行通信。
3、Binder就像信使鸽子一样传递信息
Binder通信采用C/S架构
从组件视角来说,包含Client、Server、ServiceManager以及Binder驱动,其中ServiceManager用于管理系统中的各种服务。如上图所示Binder在Framework层和Native层分别有对应的客户端(Client)、服务(Server)的和服务管理器(Service Manager)。同时在Kernel层(内核空间)有Binder的驱动设备。
这四个角色的作用分别是:
① Client进程:使用服务的进程。
② Server进程:提供服务的进程。
③ ServiceManager进程:ServiceManager的作用是将字符形式的Binder名字转化成Client中对该Binder的引用,使得Client能够通过Binder名字获得对Server中Binder实体的引用。
④ Binder驱动:驱动负责进程之间Binder通信的建立,Binder在进程之间的传递,Binder引用计数管理,数据包在进程之间的传递和交互等一系列底层支持。