IPC:Inter-Process Communication,即进程间通信或跨进程通信,指两个进程实现数据交换的过程
什么叫进程
进程和线程是截然不同的概念
线程是CPU最小的调度单元
进程是指一个程序或者一个应用,一个进程可以包含多个线程,
因此进程和线程是包含和被包含的关系
一个Android应用里面包含UI线程
不同的操作系统有不同的方式实现进程间通信,Linux可以通过共享内存,信号量等实现
在Android中最有特色的进程间通信方式就是Binder,此外还有Socket,ContentProvider
开启多进程模式
- 给四大组件设置android:process=“:remote”属性
android:process=“:remote”创建的进程名由应用包名+:remote组成.创建的进程是当前应用的私有进程,其他应用的组件不能在该进程运行
android:process=“com.example.remote”创建的进程名为"com.example.remote",其他应用的组件可以通过shareUID运行在该进程内
- 另一种非常规的方法是通过JNI在native层去fork一个新的进程
使用多进程会造成下面几个问题:
- 静态成员和单例模式完全失效
-线程同步机制完全失效
-SharePreferences的可靠性下降
-Application会多次创建