最近想起IPC机制来,感觉还是有些会不记得,于是写下这篇文章,希望自己能牢牢的记住。
简介
IPC拼写是Inter-Process Communication。含义是进程间通信或者跨进程通信,通俗的说就是两个进程之间进行数据交换。
Android中的多进程模式
- 如果设置多进程?
设置多进程很简单,在AndroidManifest.xml的<activity>标签下加android:process,虽然设置很简单,但是涉及的东西缺很多。
比如会造成一下几个问题
Serializable接口
对象的序列化和反序列化。采用ObjectOutputStream和ObjectInputStream将对象序列化到文件或者反序列化读取文件。1
2
3public class User implements Serializable{
private static final long seriaVersionUID = 1L;
}Parcelable接口
Parcel内部包装了可序列化数据,可通过Binder进行传输,在Android中进程间通信使用消耗更少。IPC的几种方式
1.使用Bundle
大多数都是使用Intent传递Bundle数据,实现进程间通信。
2.使用文件共享
两个进程读写同一文件实现进程间通信。
3.使用Messenger
使用Messenger和Message进行进程间通信。
4.使用AIDL
远程调用服务跨进程通信。
5.使用ContentProvider
Android提供的专门用于不同应用进行数据共享的方式。
6.使用Socket
网络通信方式
- Binder 连接池的使用
通过BinderPool获取到不同类型的Binder,再进行调用。
注:后期增加IPC方式的代码。