使用多进程:android:process
属性android
Android为每个进程都分配一个独立的虚拟机,致使在不一样的虚拟机中访问同一个类的对象会产生多份副本,即便是public static int sUerId = 1
之类的静态变量也同样网络
使用多进程会形成:并发
SharedPreferences
的可靠性降低decribleContents
方法,writeToParcel
方法,和CREATOR
使用Bundleide
使用文件共享高并发
使用Messenger线程
使用AIDLcode
使用ContentProvider对象
使用Socket(“套接字”)继承
名称 | 优势 | 缺点 | 使用场景 |
---|---|---|---|
Bundle | 简单 | 只能传输Bundle支持的数据类型 | 四大组件之间进程通讯 |
文件共享 | 简单 | 不适合高并发,没法作到进程间即时通讯 | 无并发访问情形 |
AIDL | 一对多并发即时通讯 | 一对多通讯且有RPC需求 | |
Messenger | 一对多串行通讯,支持实时通讯 | 不能处理好高并发,不支持RPC, | 低并发的一对多即时通讯,无RPC需求 |
ContentProvider | 支持一对多并发数据共享, | 理解为受约束的AIDL,主要提供CRUD操做 | 一对多进程间的数据共享 |
Socket | 功能强大,经过网络传输字节流,支持一对多并发实时通讯 | 不支持直接RPC | 网络数据交换 |
参考:《Android开发艺术探索》接口