IPC机制--开发艺术探索(二)

Parcelable使用较为复杂,下面是一个典型用法:

IPC机制--开发艺术探索(二)

IPC机制--开发艺术探索(二)

首先说下Parcel,Parcel 内部包装了可序列化的数据,可以再Binder中自由传输。

序列化过程需要实现的功能有:

1.序列化 -->writeToParcel

2.反序列化 -->CREATOR

3.内容描述 -->describeContents (基本所有情况返回0,只有当前对象存在文件描述符是,返回1)

注意:User(Parcel in)方法中,由于book是另一个可序列化对象,所以它反序列化过程需要传递当前线程的上下文加载器,否则报错

IPC机制--开发艺术探索(二)

序列化方式选取:

IPC机制--开发艺术探索(二)


Binder
Binder是Android中一个类,实现了IBinder接口,是Android一种跨进程通信方式,也可理解为一种虚拟物理设备,设备驱动为/dec/binder;从Android Framework角度上,Binder是ServiceManager连接各种Manager(Activity、Window等)和ManagerService的桥梁;从Android应用层来说,Binder是客户端与服务端进行通信的媒介,当bindService时,服务端返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端可以获取服务器端提供的服务或数据,这里的服务包括普通服务以及基于AIDL的服务。