Android进程间通信
Binder通信原理
Bundle
简单易用,比如Activity、Service、Receiver支持在Intent中传递Bundle数据,只能传输Bundle支持的数据类型,用于四大组件的进程通信
文件共享
不适合高并发的情况,并且无法做到进程间的及时通信,适合无并发情况下,交换简单的数据实时性不高的情况
Socket
功能强大,可以通过网络传输字节流,支持一对多并发实时通讯,实现细节有点繁琐,不支持直接的RPC,适用于网络数据交换
Binder
AIDL
功能强大,支持一对多并发通信,支持实时通讯,需要处理好线程同步,适用于一对多通信且有RPC需求
Messenger(底层其实是AIDL)
支持一对多串行通信,支持实时通讯,不能很好处理高并发情况,不支持RPC,数据通过Message进行传输,因此只能传输Bundle支持的数据类型。适合低并发的一对多及时通信,无RPC需求或无需返回结果的RPC需求
ContentProvider
在数据源访问方面功能强大,支持一对多并发数据共享,可通过call方法扩展其他操作,只要提供数据源的crud,适合一对多的进程间数据共享