2.1 Android IPC简介
IPC是Inter-Process Communication的缩写,含义是进程间通信,指两个进程之间进行数据交换的过程。
进程:一般指一个执行单元,在PC和移动设备上指一个程序或应用。
线程:CPU调度的最小单元。线程是一种有限的系统资源。
一个进程拥有多个线程。
不同的操作系统有不同的IPC方式
Windows:通过剪切板、管道、油槽等进行进程间通讯。
Linux:通过命名空间、共享内容、信号量等进行进程间通讯。
Android:没有完全继承Linux,比如,其独具特色的通讯方式有Binder、Socket等等。
2.2 Android中的多进程模式
2.2.1 开启多进程模式
开启多进程模式:
1、(不常用)通过JNI在native层fork一个新的进程。
2、(常用)在AndroidMenifest中给四大组件指定属性android:process
Android系统会为每个应用分配一个唯一的UID,具有相同的UID的应用才能共享数据。
2.2.2 多进程模式的运行机制
所有运行在不同进程中的四大组件,只要它们之间需要通过内存来共享数据,都会共享失败(不同的虚拟机中访问同一个类的对象会产生多个副本),这也是多进程所带来的影响。
多进程会造成如下几个方面的问题:
(1)静态成员和单例模式完全失效
(2)线程同步机制完全失效
(3)SharedPreferences的可靠性下降
(4)Application会多次创建
为了解决这个问题,系统提供了很多跨进程通信方法,虽然不能直接地共享内存,但是通过跨进程通信我们还是可以实现数据交互。
网友评论