一:为什么要序列化
1. 序列化的目的是: 保存对象,将对象数据保存在文件,磁盘或者是数据库中
2.将序列化之后的对象在进程间传输
3.在使用 Intent 传输数据的时候,数据类型较为复杂的需要进行序列化。如果实现 Serializable 接口,直接实现 Serializable 接口即可
二:使用
Serializable 只要实现 Serializable 接口就可以了;
Parcelable 是 Android 特有的序列化方式,他的实现相对 Serialiable 来说更加复杂一点。
Parcelable 内部包装了可序列化的数据,序列化功能由 writeToParcel 方法完成,反序列化由 CREATOR 完成。
三:选择的区别
Serializable 使用简单但是开销很大,序列化与反序列化需要大量的 I/O 操作,一般用于将对象序列化到存储设备中,或序列化后通过网络传输;Parcelable 使用稍微麻烦点,但是效率高,主要用在内存序列化上。