Parcelable为什么效率高于Serializable

最后都变了- 提交于 2020-02-26 10:06:17

前言

WanAndroid上看到每日一问 Parcelable 为什么效率高于 Serializable ?这篇文章,虽然知道ParcelableSerializable效率高,但是一直不知道原因。这里总结一下。

相同点

ParcelableSerializable都是用于数据传输(多用于应用内传输),特别是在Android组件之间传输时,非常常用。

不同点

1. API不同

SerializableJava API,而ParcelableAndroid API,所以通常Serializable更通用些

2. 目的不同

Serializable其实是进行Java对象序列化的,可以持久化,甚至在不同应用中传输,而大专栏  Parcelable为什么效率高于Serializablede>Parcelable是Android为了解决对象传输效率的问题开发的,用于组件之间传输数据。

3. 效率不同

Serializable使用的是反射机制,在序列化过程中会产生很多冗余对象,触发GC

Parcelable则是将对象中所有的内容分解成可支持、可传递的基础属性,而且这些属性完全保存在内存中,效率很快。

4. Parcelable的缺点

  1. 不能持久化
  2. 实现较为复杂

一句话总结

Serializable是利用反射进行对象序列化,开发简单但开销大效率低

Parcelable是将对象分解成基础属性,在内存中处理,高效但开发较为复杂

JSON

虽然在应用程序中传递数据,一般都是使用对象,但是我个人认为JSON也可以用来传递数据,在JSON工具好用的今天,完全可以解决日常问题。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!