java - 什么是序列化和可分包

标签 java android

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

  • 可序列化对象
  • 序列化
  • 可分包

请问这些词是什么意思以及它们的用途是什么?

最佳答案

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

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

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

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

因此,与 Parcelable 相比,Serialization 过程较慢。

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

关于java - 什么是序列化和可分包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36424094/

相关文章:

java - 在java ContentValues中转义sqlite列名

java - 如果线程B希望看到线程A所做的更改,那么最后更改只能是volatile变量而不是全部变量吗?

android - 试图将 map 放入 fragment Activity 中

java - 伴随对象 Kotlin JNI 中的 UnsatisfiedLinkError

android - 单独线程中的 MediaPlayer 与通过 startForeground() 在服务中运行

java - tTorrent 客户端错误

java - 在java中解析字符串数组以获取整数值

java - 系统设置 Intent 后无法返回 Activity

android - CS0117 "Resource"不包含 "Xml"的定义

java - 如何从可绘制 xml 中的 Assets 访问图像