Binder 工作机制

Binder 是 android 中的一个类,它实现了 IBinder 接口。
1 , 从IPC 角度说 ,binder 是 android 中的一种跨进程通信方式,binder 可以理解为一种虚拟的物理设备,
它的驱动 /dev/binder, 该通信方式 linux中没有。

2 , 从 anroid framework 角度说,binder 是 ServiceManager 链接各种 Manager(activityManager,WindowManager 等)
和 相应 ManagerService 的桥梁。

3 , 从 android 应用层来说,binder 是客户端 和 服务端 进行通信的媒介。当bindService 的时候,服务端会返回一个包含了
服务端业务调用的 binder对象,通过这个binder对象,客户端就可以获取服务端提供的服务或数据,这里的服务包括普通
服务 和基于 aidl的服务。
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安卓binder是一种进程间通信(IPC)机制,它是安卓系统中实现跨进程通信的重要组件。其工作原理可以简要概括如下: 1. Binder驱动:安卓系统内核中的Binder驱动负责管理进程间通信,并提供了一些接口供用户进程使用。它实际上是一个内核模块,用于创建和管理Binder设备。 2. 服务端:服务端进程通过创建一个Binder对象(Binder对象实际上是一个带有特定接口的对象)并将其注册到Binder驱动中,以提供服务。服务端可以通过Binder对象的接口来响应客户端的请求,这个接口需要继承自Binder类。 3. 客户端:客户端进程通过获取到服务端的Binder对象的引用(通过Binder驱动的查询机制或其他方式)来与服务进行通信。客户端将自己的请求参数等信息封装在一个Parcel对象中,然后通过Binder对象提供的接口发送给服务端。 4. 进程间通信:在发送请求时,客户端进程通过Binder驱动将Parcel对象发送给服务端进程。在接收到请求后,服务端进程通过Binder驱动将Parcel对象接收并解析,以获取请求参数。服务端根据请求参数作出响应,将响应的结果封装在另一个Parcel对象中,并通过Binder驱动将其发送给客户端进程。 5. 返回结果:在接收到服务端返回的Parcel对象后,客户端进程通过解析Parcel对象,获取到服务端的响应结果。 总体来说,安卓binder工作原理是通过Binder驱动在进程间传递Parcel对象进行通信,服务端进程提供服务,客户端进程发起请求并获取服务端的响应。这个机制实现了安卓系统中进程间的双向通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值