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())
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())
相关文章推荐
- Android Activity相关笔记
- Android菜鸟的成长笔记——RadioGroup + ViewPager 联动时,ViewPager滑动不流畅
- Android常见第三方框架
- android四大组件之activity
- Android Toolbar
- RecyclerView简单使用
- Android自定义View基础篇(二)
- Android SurfaceView仿“是男人就下一百层”
- 安卓获取正在运行的应用和在后台运行的应用。兼容5.0之后的版本。
- Android项目结构
- android开发--ViewPager的简单应用
- Android之ListView性能优化——使用ConvertView和ViewHolder
- Android群英传笔记——第四章:ListView使用技巧
- Android群英传笔记——第四章:ListView使用技巧
- android viewpager change adapter ---在使用viewpager设置新的adapter的时候发现页面还是显示旧的adapter中的值
- Android中匹配器ArrayAdapter加载List显示顺序
- Android的日期时间格式化
- 安卓开发小知识-Animation入门
- Android RecyclerView 使用完全解析
- genymotion+VirtualBox创建android模拟器