序列化

121 阅读1分钟

本文引用自链接

  • 序列化就是将对象的状态信息转换为可存储可传输的形式的过程
  • 在平时我们用到序列化最多的情况就是使用Intent传递对象,使用Intent传递基本数据类型以外的对象就必须实现Parcelable或者Serializable,否则会报错。

注意:

  1. Intent传递的对象是需要序列化和反序列化的,虽然传递和接受的对象内容相同,但是它们是不同的对象,它们的引用是不同的。
  2. 静态变量是不会经过序列化的,跨进程通信时静态变量是传递不过去的。

serializable与parcelable

serializable

是java提供的序列化接口

优点

  • 使用简单
  • 适合将对象序列化到存储设备、网络传输 缺点
  • 效率较低,序列化和反序列化需要大量的IO操作

parcelable

是android特有的序列化方式,它的实现相对Serialiable来说更加复杂一点,但是通过AS的一个插件就可以很方便的完成

插件名称: Android Parcelable Code Generator

当你完成对象的创建并实现Parcelable接口后,右键,选择Generate,接着选择Parcelable,并点击你需要序列化的字段,点击ok就完成可序列化了

parcelable方法说明

20170222110738102.png (此截图引用自Android开发艺术探索)

优点

  • 效率高,适合内存中的序列化使用 缺点
  • 实现复杂