安卓专有的通信子系统-Binder IPC

一、Binder 是什么

它是一种IPC 通信机制,它比Linux一般的通信方式更加简洁,消耗内存资源更小。实质是一种架构,这种架构可以提供服务器端服务接口,Binder 驱动,客户端服务代理接口,以及一个守护进程Service Manager.提供主要的功能如下:

  • 驱动程序来推进进程间的通信
  • 使用共享内存提高性能
  • 为进程请求分配每个进程的线程池
  • 针对系统中的对象引入了引用计数和跨进程对象引用映射
  • 进程间同步调用

二、Binder 通信原理

采用C/S 模式,也就是Client- Server ,每个需要Binder 通信的进程都必须创建一个Binder接口

Binder 驱动:是一个miscdevice的驱动,主设备号为10,其设备节点dev/binder ,在驱动实现过程中,主要是通过binder_ioctl 函数与用户空间的进程交换数据。负责为上层客户端提供各种操作接口

Service Manager: 负责管理系统服务,监听并相应客户端的请求

Client:一般指的是安卓系统上面的应用程序,他可以请求Server 中的服务

三、Binder 使用实例

客户端发送请求到binder驱动代理对象发送用户请求到服务器进程,服务器进程处理用户请求,并通过Binder 驱动代理返回处理结果到客户端服务器代理,客户接收到服务器返回的结果。

相关推荐
ue星空1 小时前
【安卓逆向】为什么用Frida?
android
小驰行动派2 小时前
Camx架构全景图:从V4L2到Pipeline的完整拆解
android·camera·android camera
hunterandroid3 小时前
[Android 从零到一] Custom View 触摸反馈与手势冲突解决
android
coderSong25684 小时前
Android | 四大组件之 BroadcastReceiver(广播接收器)
android
爱笑鱼7 小时前
Android 系统启动机制(二):init.rc 不是普通脚本,service、action 和 property 怎样驱动启动?
android
新鲜势力呀7 小时前
深入理解 Elliot CUDA 编程核心:PHP 实现 CUDA 并行计算思想与实践
android·开发语言·php
2501_916007477 小时前
申请 iOS 推送证书并配置 APNs 群发推送教程
android·ios·小程序·https·uni-app·iphone·webview
恋猫de小郭8 小时前
Flutter 3.47 首坑,analysis_options 问题连环回归
android·前端·flutter
ue星空9 小时前
第一个安卓程序
android