intent传对象为啥要序列化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了intent传对象为啥要序列化相关的知识,希望对你有一定的参考价值。

参考技术A 传递。
三. android中的两种序列化机制
第一种: JAVA中的Serialize机制,译成串行化、序列化……,其作用是能将数据对象存入字节流当中,在需要时重新生成对象。主要应用是利用外部存储设 备保存对象状 态,以及通过网络传输对象等。

第二种:在Android系统中,定位为针对内存受限的设备,因此对性能要求更高,另外系统中采用了新的IPC(进程间通信)机制,必然要求使用性能更出色的对象传输方式。在这样的环境下, Parcel被设计出来,其定位就是轻量级的高效的对象序列化和反序列化机制。
Android中序列化有以下几个特本回答被提问者采纳

Android Intent传递对象为什么要序列化?

为什么?

     a.永久性保存对象,保存对象的字节序列到本地文件中

  b.对象可以在网络中传输

  c.对象可以在IPC之间传递(进程间通信)

那选哪个序列化?

1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。

2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable

4)Serializable是Java中的序列化接口,其使用起来简单但是开销很大,序列化和反序列化过程需要大量IO操作。而Parcelable是Android中序列化方式,因此更适合用在Android平台上,它的缺点是使用起来稍微复杂一点,但是因为有一套模板,所以这点复杂还是可以接受的,而且它的效率很高,这也是Android推荐的序列化方式,因此在Android平台上首选Parcelable。

以上是关于intent传对象为啥要序列化的主要内容,如果未能解决你的问题,请参考以下文章

Android Intent传递对象为啥要序列化,序列化有那几种方式

对象的传递为啥要 序列化 呢

android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

android bean 中含有bitmap 怎么用过intent传递

Android Intent传递对象为什么要序列化?

如何将不可序列化的对象传递给意图服务?