您的位置:首页 > 移动开发 > Android开发

Android IPC机制

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

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

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

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

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

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

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

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

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

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

Book=in.readParcelable(Thread.currentThread().getContextClassLoader())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: