Android中 IPC通信(Inter-Process Communication)的几种方式:
- Bundle
> 通过Intent 进行传递数据,可以传递基本类型、实现Parcelable 对象、Serializable对象 以及Android支持的特殊对象。
- 文件共享
> 两个进程通过读/写同一文件进行交换数据,也可以进行并发读取数据。(不建议使用SharePreference在进程中进行并发读写文件)
-
Messenger
通过Messenger传递Message信息,主要用于传递消息,一次请求一次处理,即为串行的方式处理客户端的消息。不太适用于大量的并发请求。
Demo示例(Github) -
AIDL
通常使用的跨进程通信的方式,注意事项:不要在服务端开线程进行耗时操作,服务端本身在Binder线程池中,可以自身进行耗时操作。
Demo示例(Github) -
ContentProvider
略
-
Socket
主要用于网络通信,可以通过TCP/UDP进行通信。
**Binder线程池**
> 主要用于管理多个AIDL,避免每创建一个AIDL就创建一个Service进行连接,将使用一个Service对Binder及AIDL进行管理。
[Demo示例(Github)](https://github.com/zhouzhouzhouzhouzhou/LearnBinderWithAidl)