Android IPC机制

1. Android实现多进程常规方法只有一种方法:给四大组件加上android:process属性(非常规方法:JNInative层去fork一个新进程)  Binder,Socke,intent,messenger共享文件,sharedpreferences可用于进程通讯,handler用于线程通讯)

Android:process=”:XXXXX”(私有进程)  android:process=”XXXXX”(全局进程以冒号开头的进程为当前应用进程的私有进程(其它应用的组件不能跟其跑在同一进程里),在其进程名前会自动加上当前应用的包名 package:XXXXX 

同一应用中进程对静态全局变量赋的值不会影响 进程中对应的静态全局变量 同时同一应用开启多进程带来的问题: (不同进程的组件会拥有独立的虚拟机,Application,内存空间)

1. 静态成员和单例模式完全失效

2. 线程同步机制完全失效(进程不一样,锁的不是同一对象)

3. SharedPreferences可靠性下降(不支持并发写)

4. Application会多次创建(创建新进程同时分配独立虚拟机等同于启动一个应用)



2. 序列化方式 Serializable(Java)  Parcelable(Android)

Serializable: 较为简单 只需添加serialVersionUID (辅助反序列化过程)

Parcelable: 可实现 对属性的制定传递 writeToParcel()(序列化过程),CREATOR(反序列化过程当序列化过程中 需要传递实现了序列化的对象(即 序列化对象内包含另一个序列化对象),则该对象的反序列化过程要传递当前线程的上下文加载器 如 

 Book=in.readParcelable(Thread.currentThread().getContextClassLoader())

你可能感兴趣的:(android,ipc)