【问题标题】:What are Serialization and Parcelable [duplicate]什么是序列化和 Parcelable [重复]
【发布时间】:2016-07-25 06:14:47
【问题描述】:

我是 Android 开发的新手,我偶然发现了这些词:

  • 可序列化对象
  • 序列化
  • Parcelables

请问,这些词是什么意思,它们是干什么用的?

【问题讨论】:

标签: java android


【解决方案1】:

Parcelable 和 Serialization 用于编组和解组 Java 对象。

Parcelable在 Android SDK 中有详细记录;另一方面,序列化在 Java 中可用。正是出于这个原因,Android 开发人员更喜欢 Parcelable 而不是序列化技术。

· 在 Parcelable 中, 开发人员编写用于编组和解组的自定义代码,因此与序列化相比,它创建的垃圾对象更少。由于这种自定义实现,Parcelable over Serialization 的性能显着提高(大约快了两倍)。

·序列化是一个标记接口,这意味着用户不能根据他们的要求来编组数据。在序列化中,使用 Java 反射 API 在 Java 虚拟机 (JVM) 上执行封送操作。这有助于识别 Java 对象的成员和行为,但最终也会创建大量垃圾对象。

因此,与 Parcelable 相比,序列化过程较慢。

查看以下链接:非常好的解释和示例。
http://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-android-app-development

【讨论】:

    【解决方案2】:

    来自https://en.wikipedia.org/wiki/Serialization

    在计算机科学中,在数据存储方面,序列化是 将数据结构或对象状态转换为 可以存储的格式(例如,在文件或内存缓冲区中,或 通过网络连接链路传输)并在以后重建 在相同或其他计算机环境中。

    有多种方法可以使 java 类可序列化。其中有

    • Parcelable 是一种非便携式 android 特定格式。 (非便携式:不能在 android 之外使用)
    • Serializable 是可移植的 java 标准二进制格式,适用于所有 java 系统,包括 android。 (二进制 = 人类不可读)
    • xml-serialization-in-java 是一种人类可读的格式。

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 2011-12-05
      • 2011-03-20
      • 2011-04-14
      • 2010-10-12
      • 1970-01-01
      • 2010-10-11
      相关资源
      最近更新 更多