1). 实现Parcelable就是为来进行序列化,那么,为什么要序列化?? 一. 永久性保存对象,保存对象的字节序列到本地文件中; 二. 通过序列化对象在网络中传递对象; 三. 通过序列化在进程间传递对象; 2). 实现序列化的方法 Android中实现序列化有2个选择: 一是实现Serializable接口(是Java本身就支持的),二是实现Parcelable接口() 是Android特有的功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通讯(IPC)Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种性能 注: Android中Intent传递对象有两种方法:一是Bundle.putSerializable(Key,Object),另一种是Bundle.putParcelable(Key,Object)。当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。 3). 选择序列化方法的原则 一. 在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable; 二. Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC; 三. Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable ; 4). 应用场景 需要在多个部件(Activity或Service)之间通过Intent传递一些数据,简单类型(如:数字、字符串)的可以直接放入Intent。