名词解释
IPC:进程间通讯
使用Bundle
三大组件(Activity,Service,Receive)之间都是支持在Intent中传递Bundle数据,由于Bundle实现了Parcelable接口,所以它可以方便的在不同进程之间传输
使用文件共享
两个进程可以通过读/写同一个文件来交换数据,一个进程把数据写入文件,另一个进程从文件读取数据
SharedPreference在多进程读写的时候是不可靠的,因为内存中有一份SharedPreference文件的缓存,不建议在进程通讯中使用SharedPreference
使用Messenger
通过它可以在不同进程之间传递Messenger对象,底层是AIDL
使用AIDL
Messenger是以串行的方式处理客户端发来的消息,如果大量的消息同时发送到服务端,服务端仍然只能一个个处理,如果有大量的并发请求,Messenger就不太合适了。同时Messenger的作用是为了传递消息。很多时候我们需要跨进程调用服务器的方法,就可以使用AIDL来实现跨进程的方法调用
使用ContentProvider
ContentProvider是Android中提供的专门用于不同应用间进行数据共享的方式,它的底层也是AIDL,通过继承ContentProvider,实现query,update,insert和delete方法即可
使用Socket
客户端可服务端在不同进程之间,建立tcp连接,传输数据
各种通讯的优缺点
IPC方式.PNG