1、Bundle
Intent中传递Bundle数据,Bundle实现了Parcelable接口,可以在不同进程间传输。
2、使用文件共享
共享文件也是一种不错的进程间通信方式,两个进程通过读写同一个文件来交换数据。
Android是基于Linux,使得其并发读写文件可以没有限制的进行,甚至两个线程同时对一个文件进行写操作都是允许的。对于对象共享,可以使用序列化。
3、使用Messenger
Messenger是一种轻量级的IPC方案,它的底层实现是AIDL。需要一个客户端,服务端。
Messenger是以串行的方式处理客户端发来的消息,如果大量的消息同时发送到服务端,且需要并发处理,那么Messenger就不太合适了。
4、使用AIDL
5、使用ContentProvider
ContentProvider是安卓中提供专门用于不同应用间进行数据共享的方式,它天生适合进程间的通信。和Messenger一样,ContentProvider的底层实现同样也是Binder。
6、使用Socket
Socket也称“套接字”,是网络通信的概念。
两个进程可以通过Socket来实现信息传输,Socket本身可以支持传输任意字节流。