Parcelable为什么效率高于Serializable

Parcelable为什么效率高于Serializable

前言

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

相同点

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

不同点

1. API不同

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

2. 目的不同

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

3. 效率不同

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

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

4. Parcelable的缺点

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

一句话总结

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

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

JSON

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


   转载规则


《Parcelable为什么效率高于Serializable》 Mycroft Wong 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
学习计划 学习计划
2019年8月22日 [√]View的测量、布局、绘制 [√]View.post(Runnable)深入探讨 [√]图片压缩原理 断点续传、断点下载 2019年8月25日 阅读自定义View系列教程 [√]阅读Android网络编程-HT
2019-08-22
下一篇 
面试总结 面试总结
正式离职了,离职之前面试了几家公司,因为一些原因拿到offer也没去。刚开始找工作一天,就确定了。面试的过程中遇到了很多问题,根据问题,自我定目标,再深入学习。
2019-08-21
  目录