Android进程间通信

Binder通信原理

参考链接

Bundle

简单易用,比如Activity、Service、Receiver支持在Intent中传递Bundle数据,只能传输Bundle支持的数据类型,用于四大组件的进程通信

文件共享

不适合高并发的情况,并且无法做到进程间的及时通信,适合无并发情况下,交换简单的数据实时性不高的情况

Socket

参考链接

功能强大,可以通过网络传输字节流,支持一对多并发实时通讯,实现细节有点繁琐,不支持直接的RPC,适用于网络数据交换

Binder

AIDL

参考链接

功能强大,支持一对多并发通信,支持实时通讯,需要处理好线程同步,适用于一对多通信且有RPC需求

Messenger(底层其实是AIDL)

参考链接

支持一对多串行通信,支持实时通讯,不能很好处理高并发情况,不支持RPC,数据通过Message进行传输,因此只能传输Bundle支持的数据类型。适合低并发的一对多及时通信,无RPC需求或无需返回结果的RPC需求

ContentProvider

参考链接

在数据源访问方面功能强大,支持一对多并发数据共享,可通过call方法扩展其他操作,只要提供数据源的crud,适合一对多的进程间数据共享

Author

jiangyao

Posted on

2021-06-12

Updated on

2024-09-05

Licensed under