Android 中基于 Binder的进程间通信,androidbinder
摘要:对 Binder 工作机制进行了分析。 首先简述 Android 中 Binder 机制与传统的 Linux 进程间的通信比较,接着对基于 Binder 进程间通信的过程分析 最后结合开发实例 (AIDL),了解 基于 Binder的进程间通信。
1、Android 采用 Binder 作为 IPC (Internet Process Connection) 机制的优势
Linux已经拥有的进程间通信IPC手段包括(Internet Process Connection): 管道、信号和跟踪、插口、报文队列、共享内存和信号量。但是Linux 进程间通信方式存在着增加进程的开销、 进程过载和安全漏洞等方面的问题。在 Android 系统中,Binder IPC 进程间通信机制可以有效地解决这些问题。
Binder的优势:
①高效率: Binder 传输只需要一次拷贝,而管道、消息队列、Socket都需要拷贝两次,对于移动设备,性能一直是个大问题;
②安全性高: Binder 机制对于通信双方的身份是内核进行校检支持的,socket 方式只需要知道地址都可以连接;
③易用性: B/S模式的通信,如果管道/消息队列还得进行包装,而Binder使用面向对象的方式设计,进行一次远程过程调用就像调用本地对象;
2、基于 Binder 进程间通信的过程分析
Binder IPC 方式使得两个进程间的通信像是一个进程进入另外一个进程执行代码, 并带着运行结果返回,这类似于一个“轻量级” 的远程调用过程 。