引言
- IPC是Inter-Process Communication的缩写,含义是进程间通信和跨进程通信,是指两个进程直接进行数据交换的过程。
- Binder机制是Android 采用的独特的进程间通信机制。基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信。
- Messenger、ContentProvider、AIDL底层实现都是Binder。
面试题
Android IPC有哪些方式?优缺点和适用场景?
- Bundle:在Bundle中附加数据并通过Intent传输
- 文件共享:两个进程通过读写一个文件来交换数据
- AIDL:Android Interface Definition Language
- Messenger:基于消息的进程间通信
- ContentProvider::专门用于不同应用间的数据共享
- Socket:使用TCP和UDP协议进行网络通信
注:RPC——远程过程调用
Binder的系统架构
- Service Manager
Service Manager主要负责Android系统中所有的服务,当客户端要与服务端进行通信时,首先就会通过Service Manager来查询和取得所需要交互的服务。当然,每个服务也都需要向Service Manager注册自己提供的服务,以便能够供服务端进行查询
- Service Manager