序列化的两种方式,一种是
java提供的Serilizable和Android自身提供的Parcelable.
基本使用
1 | public class Person implements Serializable { |
区别
- 存储媒介的不同
| 存储媒介 | 特点 | |
|---|---|---|
| Serializable | 使用的IO读写存储在硬盘上,序列化过程使用了反射技术,并且期间产生临时对象(?),从而引起频繁的GC。 | 代码少 |
| Parcelable | 使用的IO读写在内存中,内存的读写速度肯定优于硬盘读写速度,所以Parcelable的性能上优于Serializable. | 代码写起来比较多 |
具体到开发中用哪个,个人觉着要考虑要传递对象的大小,如果对象比较大,手机内存比较小,可能会报出 TransactionTooLargeException: The Binder transaction failed because it was too large . 此时就要考虑使用 Parcelable 了,如果对象不是特别大,使用 Serializable 还是挺合适的,毕竟实现比较简单。