Parcel内部包装了可序列化的数据,可以在Binder中自由传输,大年夜上述代码中可以看出,在序列化过程中须要实现的功能有序列化、反序列化和内部描述序列化功能由writeParcel办法完成,最终是经由过程Parcel中的一系列write办法来完成的。反序列化功能由CREATOR来完成,其内部标清楚明了若何创建序列化对象和数组,并经由过程Parcel一系列read办法来完成反序列化过程;内容描述功能由describeContents来完成,几乎所有情况下这个办法都应当返回0,仅当当前对象中存在文件描述符时,此办法返回1.体系已经供给了很多实现Parcelable接口的类,它们都是可以直接序列化的,如:Intent、Bundle、Bitmap等,同时List 和 Map也可以序列化,前提时它们琅绫擎每个元素都是可序列化的。
既然Parcelable 和Serializable 都可以用于Intent间的数据传递,那么若何选择了。
- Serializable是Java中的序列化接口,其应用起来简单然则开销大年夜,序列豢?状序列化过程都须要大年夜量的 I/O操作。
在客户端绑定长途办事成功后,给binder设置逝世亡代劳
- Parcelable是Android中的序列化方法,更实用于在Android平台上,它的缺点就是用起来稍微麻烦,但效力很高,这是Android推荐方法,是以,首选Parcelable。但经由过程Parcelable将对象序列化到存储设备中或将对象序列化后经由过程收集传输也都是可以的,然则这个过程会稍显复杂,是以这种情况下建议应用Serializable。
- Binder
Binder是一个异常复杂,这里只是介绍下Binder的应用及上层实现道理。
Binder是Android中的一个类,它实现了IBinder的接口。大年夜IPC角度来说,Binder是Android一一种跨过程的筒?方法,Binder还可以懂得为一种虚拟物理设备,它的设备驱动是 /dev/binder,该筒?方法在Linux中没有;大年夜Android Framework,角度来说,Binder是ServiceManger连接各类Manger(ActivityManger 、WindowManger,等等)和响应的MangeSrervice的桥梁;大年夜Android应用层来说,Binder是客户端和办事端进行通信的序言,当bindSrervice的时刻,办事端会返回一个包含了办事端营业调用的Binder对象,经由过程这个Binder对象,客户端就可以用获取办事端供给的办事或者数据,这里的办事包含通俗办事和基于AIDL的办事。通俗Srervice中的Binder不涉及过程间通信,下面经由过程AIDL来分析Binder的工作过程。
推荐阅读
中国人平易近银行宣布他们在近期成立了金融科技(FinTech)委员会。金融科技是技巧驱动的金融立异,为金融成长注入了新的活力,也给金融安然带来了新挑衅。中国人平易近银行将组织深刻研究金>>>详细阅读
本文标题:Android中的IPC机制
地址:http://www.17bianji.com/lsqh/35226.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示