Binder

Catalogue   

一个进程空间分为:

  • 用户空间:数据不可共享,所以用户空间 = 不可共享空间
  • 内核空间:数据可共享,所以内核空间 = 可共享空间

Binder 的作用则是:连接两个进程,实现了mmap()系统调用,主要负责创建数据接收的缓存空间 & 管理数据接收缓存。
传统的跨进程通信需拷贝数据2次,但 Binder 机制只需1次,主要是使用到了内存映射

Android中IPC的不同方式比较

名称 优点 缺点 适用场景
Bundle 简单易用 只能传输Bundle支持的数据类型 四大组件间的进程间通信
文件共享 简单易用 不适合高并发场景,并且无法做到进程间的即时通信 无并发访问场景
AIDL 功能强大,支持一对多并发通信,支持实时通信 一对多通信且有RPC需求
Messager 功能一般,支持一对多并发通信,支持实时通信 不能很好处理高并发场景,不支持RPC 低并发的一对多通信,无RPC需求
ContentProvider 在数据源访问方面功能强大
Socket 功能强大

参考