Binder进程间通信系统

        Android系统运行在不同的进程中的应用程序组件和系统组件采用的进程间通信系统是Binder。Binder进程间通信系统在进程间传输数据时只需一次拷贝操作,既提高效率又节省空间。

        Binder进程间通信机制是采用CS通信架构,即客户端client和服务端server架构,提供服务的进程称为Server进程,访问服务的进程称为Client进程

        同一个Server进程可以同时运行多个组件来想Client进程提供服务,这些组件称为Service组件(注意是一个Servier进程中运行多个Service组件)。同一个Client进程可以向多个Service组件请求服务,每一个请求对于了一个Client组件,或者称为Service代理对象

        Server进程和Client进程都维护一个Binder线程池来处理进程间通信请求,所以可并发地提供和访问服务。

        Service组件启动时,会将自己注册Service Manager组件,以便Client组件可以通过Service Manager组件找到它,因此,Service Manager被称为Binder进程间通信机制的上下文管理者,同时因为它要与普通Server进程和Client进程(注意这里不是组件)通信,所以也可以当做一个特殊的Service组件。

        Binder进程间通信系统的Server进程和Client进程间的通信依靠内核空间的Binder驱动程序来进行,Binder驱动程序向用户空间暴露了一个设备文件/dev/binder

        Client、Service和Service Manager组件运行在用户空间,Binder驱动程序运行在内核空间

        Service Manager组件和Binder驱动程序由系统提供,Client和Service组件由应用程序实现

        Client、Service和Service Manager组件都是通过系统调用openmmapioctl来访问设备文件/dev/binder,从而实现与Binder驱动程序交互,交互的目的是为了间接执行进程间通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值