Android多进程模式
开启多线程模式、
开启的方法
- 在Android中使用多进程只有一种方法,那就是给四大组件指定android:process属性
- 还有一种非常规的方法是通过JNI在native层去fork一个新的进程,但一般不做考虑
实例
1 | <activity |

查询进程的方法
在终端输入命令
adb shell ps | Select-String +包名
进程分类
- 进程名以“:”开头的属于当前应用的私有进程,其他应用的组件不可以和他跑在同一个进程中,而进程名不以“:”开头的属于全局进程,其他应用通过ShareUID方式可以和他跑在同一个进程中
- 两个应用通过ShareUID跑在同一个进程中是有要求的,需要两个应用有相同的ShareUID并且签名相同才可以
多进程模式的运行机制
不同进程之间数据共享失败的原因
Android为每一个进程都分配了虚拟机,不同的虚拟机在内存分布上有不同的地址空间,这就导致在不同的虚拟机中访问同一个类的对象会产生多个副本
多进程造成的问题
- 静态成员和单例模式完全失效
- 线程同步机制完全失效
- SharedPreferences的可靠性下降(SharedPreferences不支持两个进程同时去执行写操作,否则导致一定几率数据丢失 )
- Application会多次创建
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Auroraの世界!




