Android进程间通信
以aidl为例来说明这个情况
先了解Parcelable类的解析情况
序列化 : 将对象转化为传输的二进制流的过程、这样我们就可以通过序列化转化为可以在网络传输或者保存到本地的流(序列)、从而进行传输数据
反序列化:同理就是从二进制流转化为对象的过程
Parcelable的效率高很多、号称十倍效率
Parcelable实现过程主要三个过程:序列化、反序列化、描述
parcelable的实现原理
简单来说,Parcel提供了一套机制,可以将序列化之后的数据写入到一个共享内存中,其他进程通过Parcel可以从这块共享内存中读出字节流,并反序列化成对象
关于序列化.png
Parcelable和Serializable的区别跟比较
Parcelable和Serializable都是实现序列化并且都可以用于Intent间传递数据,Serializable是Java的实现方式,可能会频繁的IO操作,所以消耗比较大,但是实现方式简单 Parcelable是Android提供的方式,效率比较高,但是实现起来复杂一些 , 二者的选取规则是:内存序列化上选择Parcelable, 存储到设备或者网络传输上选择Serializable(当然Parcelable也可以但是稍显复杂)
作者:MrQ_Android
链接://www.greatytc.com/p/32a2ec8f35ae
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。