Android开发艺术探索笔记(5)- Serializable和Parcelable
来源:互联网 发布:两人换脸的相机软件 编辑:程序博客网 时间:2024/05/18 03:37
因为IPC机制中使用到可序列化,所以理解这两个接口也很重要。
(1)Serializable
这个接口是Java提供的可序列化的接口,而且是一个空的接口。空接口,不可思议吧。刚开始我也蒙了。如果我们用Eclipse或者Android Stdio来开发的话,当我们实现Serializable接口的时候,会提示我们添加一个serialVersionUID这么一个变量。有什么用呢?
书中解释说:我们序列化对象时,还有一个hash值一起写到文件(或者其他中介)中,当我们反序列化的时,系统会先判断实现序列化类的hash值是否与文件(或其他中介)中一致,如果不一致,程序就会crash。
1)如果我们指定了serialVersionUID,serialVersionUID就是这个hash值,写入文件中。当我们反序列化时,即使类结构多加了一些变量,因为serialVersionUID相同,所以会尽量恢复类中变量的值。但是如果你把类改的面目全非,那当然反序列化的时候会失败。
2)如果我们不指定serialVersionUID的值,系统序列化时,会将每个变量的hash值相加然后写入文件(或其他中介),让我们有一点修改,反序列化过程就会失败,程序crash。
以上就是我们定义和不定义serialVersionUID这个变量的区别。书中还说了,我们定义的serialVersionUID是1还是编辑器帮我们生成的数字,效果都是一样的。
(2)Parcelable
Parcelable是一个Android提供的用于序列化的接口,相对于Serializable接口要复杂。里面要实现几个方法,如果用Eclipse或者Android Stdio工具开发的话,会自动提醒。我们要知道的是,了解这几个方法的作用。书中已经给出来,我附上一张图。(其实是自己懒得去记^_^)
既然Serializable和Parcelable都可以用于序列化,那我们应该怎么选择?作者在这个问题上,也做了一个说明。
Serializable使用简单,但是开销大,要频繁的使用IO操作。Parcelable实现虽然麻烦,但是效率比较高。书中建议我们如果将对象序列化到储存设备或者序列化之后需要网络传输的,应该使用Serializable。因为Parcelable是内存序列化,所以在以上2种情况会比较繁琐。
- Android开发艺术探索笔记(5)- Serializable和Parcelable
- Android开发艺术探索—Parcelable接口
- Android开发艺术探索笔记(3)- 进程和线程
- 《Android开发艺术探索》笔记(1)
- 《Android开发艺术探索》笔记
- 《Android开发艺术探索》笔记
- android: Serializable 和 Parcelable
- 【Android】Serializable和Parcelable
- 《Android 开发艺术探索》读书笔记五 IPC机制之Serialzable接口和Parcelable接口
- Window和WindowManager(Android开发艺术探索学习笔记)
- Android 开发 Parcelable,Serializable接口
- Android动画(Android开发艺术探索笔记)
- 《Android开发艺术探索》笔记(2)Android消息机制
- [android] Serializable 和 Parcelable 区别
- android---- Serializable 和 Parcelable 区别
- android---- Serializable 和 Parcelable 区别
- [android] Serializable 和 Parcelable 区别
- [android] Serializable 和 Parcelable 区别
- Android adb 获取root(4.4版本4.2版本测试可行)
- ListView嵌套GridView时的,gridview显示不全的冲突问题
- python pow() 函数
- 328. Odd Even Linked List
- windows 上安装 pip 和 scrapy
- Android开发艺术探索笔记(5)- Serializable和Parcelable
- Python logging模块详解
- 第4章 控制执行流程
- PHP短信发送代码
- POJ - 2409 Let it Bead(波利亚计数)(欧拉函数)
- 卡牌游戏相关
- instanceof和typeof运算符的区别详解
- 发送广播
- VisualBox与主机共享文件夹...