摘要:
1.什么是IPC 2.android实现IPC的几种方式
IPC
IPC全称Inter-Process Communication 是指进程间通信。Android的一个app是运行在一个进程上的(除非你启动了另外一个进程),每一个进程都是运行在一个JVM上的,所以进程和进程之间的内存空间不共享,那么如何完成进程间的通信就非常重要了。
Android IPC的几种通信方式
实现进程间的通信的思路大致就是将各个进程理解为2个不可直接交互的系统(比如 客户端 和 服务端必须通过网络来交互),要实现2个系统的数据交换无非2种方式:
1.系统和系统之间建立消息系统,通过将需要对方知道的消息发送过去进行处理返回,Android提供了Binder来实现进程间的通信,Binder会将一个数据从一个进程clone到另外一个进程(实际上是二进制流的传送,实际上你在不同进程拿到的对象并不是同一个),像Messenger AIDL 和 ContentProvider实现进程交互,底层都是使用的Binder机制。除了Binder机制外我们还可以像客户端和服务端交互那样,使用socket来完成通信。
2.系统共享资源,例如共同存储维护一个文件系统, 数据库等等,需要特殊说明,虽然SharePreference是使用的文件读写xml来存储数据的,但是在多进程中操作SharePreference是有问题的,因为SharePreference为了提高性能添加了内存缓存,但是进程间的内存空间是不共享的,所以会造成数据丢失的情况。
在后面的文章中,作者将陆续为大家介绍使用不同的方式来实现IPC。
欢迎关注我的微信公众号
璐豪笔记