关于IPC机制 相关学习(Android开发艺术探索)
分类:
文章
•
2024-02-09 10:44:04
-
开启多进程方式:
- 在四大组件(Activity,Service,Receiver,ContentProvider)在清单文件中制定android:process属性,其他无方式,也就是说我们无法给一个县城或者一个实体累指定运行时所在的进程。 其实还有另外一个非常规的方法,那就时通过jni在native层去fork一个新的进程。 可通过ddms 或者 shell 查看进程 adb shell ps | grep com.* 查看。
-
多进程模式的运行机制
- 基础概念
- 主要包含三个内容 ,Serializable 接口,parcelable接口以及Binder,Serializable接口和parcelable接口可以完成对象的序列化过程,当我们需要通过intent和binder 传输数据时候就需要用parcelable 或者serializable。
- Serializable 接口是java所提供的一个序列化接口。 注:把对象转换成字节序列的过程为对象的序列化;把字节序列恢复为对象的过程称为对象的反序列。
- 通过serialVersionUID = 32131231231L; 自定默认序列化过程。作用:检测序列化和反序列化是不是同一个类,在创建的过程中,尽量加上次变量,不加的话,如果成员变量,类型发生变化,这个时候是无法正常反序列化的。
- Parcel : parcel就是一个存放读取数据的容器;android 系统中binder进程间通信(IPC)就是使用parcel 类进行客户端与服务器的交互,而且aidl的数据也是parcel来交互的。
- Parcelable 接口: 只要实现这个接口,一个类的对象就可以实现序列化并可以通过intent 和binder传递
- binder :是android 一个类,她实现IBinder接口,从ipc 角度来说,binder是android中一种跨进程通信方式。
- 使用多进程会造成如下方面的问题
- 静态成员或单例模式完全失效
- 线程同步机制完全失效
- SharedPreferencs 的可靠性下降
- Application 会创建多次。
