Android开发经验谈Android开发

Android 开发高手课笔记-存储篇

2019-12-28  本文已影响0人  毛先森

前言

这套课程是由微信团队, Tinker 前负责人张绍文出品

相关链接

Java 对象序列化您不知道的 5 件事……

ObjectOutputStream 源码

SharePerfrence 缺点

  1. 不论 apply (异步)还是 commit (同步)都会将整个 xml 文件重写
  2. 跨进程容易出现问题,尽管开启了 sp 的多进程模式
  3. 极端情况下,App 崩溃时数据没落地,最终导致丢失

数据序列化- Serializable

  1. static 变量不会序列化
  2. serialVersionUID,虽然编译器会帮我们生成,但最稳妥的方式还是显示声明
  3. Serializable 的反序列化不会走构造方法

数据序列化- Parcelable

由于 Java 的 Serializable 性能低下,所以 Android 提供了一套自己的序列化,它的核心实现都在Parcel.cpp

Parcelable 将序列化的数据保存到内存中,不会像 Serializable 一样保存到磁盘,当然我们也可以通过Parcel.java的 marshall 接口获取 byte 数组,然后存在文件中从而实
现 Parcelable 的永久存储

  1. Parcelable 性能优先,实现过程复杂,但是这是因此避免了反射.
  2. 一般来说,如果需要持久化存储的话,一般还是不得不选择性能更差的 Serializable 方案
上一篇下一篇

猜你喜欢

热点阅读