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

Android开发艺术鉴赏第二章 IPC

2016-03-08 23:53 274 查看
IPC含义为进程间通信或者跨进程通信。多进程场景有两种:1一个应用内不同进程的通信,一般而言一个应用对应一个进程,但是在某些情况下,例如当应用内的某些模块需要运行在单独的进程中或者应用需要通过多进程获得多份内存空间时,一个应用可以有多个进程;2不同应用之间的通信。

Android开启多线程可通过给四大组件指定android:progress属性,正常情况下多进程指的是一个应用中存在多个进程。

android:progress=:remote中以“:”是简写,含义是在当前进程名前加上当前包名,以“:”开头的进程属于私有进程,其他组件不能和它跑在同一个进程。不以“:”开头的进属于全局进程,其他应用符合shareUID一致和签名相同可以和它跑在同一个进程。

安卓为每个进程分配一个独立的虚拟机,不同虚拟机在内存上有不同的地址空间,所以当一个应用开启多个进程时,多个进程访问同个对象会有多份数据副本,且互不干扰。因此多进程可能导致以下问题;1静态成员和单例模式完全失效; 2线程同步完全失效 ;3sharePreference可靠性下降,因为其不支持并发写和读;4Application多次创建。

为解决以上问题(数据无法数据无法交互),系统提供了很多跨进程通信方式。

序列化:1持久到存储设备;2网络传输;3进程间通信。http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

Serializable接口:seriaVersionUID的主要作用在反序列化。

Parcelable接口:实现此接口的有Intent,Bundle.Bitmap,List,map

区别:内存序列化首选Parcelable,序列化到存储设备或网络传输选择Serializable。

Binder;系统会为AIDL自动生成其所对应的Binder类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: