android为什么要序列化?什么是序列化,怎么进行序列化

why

为什么要了解序列化?—— 进行Android开发的时候,无法将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递。

what

什么是序列化 —— 序列化,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。

how

怎么通过序列化传输对象?

Android中Intent如果要传递类对象,可以通过两种方式实现。

方式一:Serializable,要传递的类实现Serializable接口传递对象,

方式二:Parcelable,要传递的类实现Parcelable接口传递对象。

Serializable(Java自带):

Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。

Parcelable(android 专用):

除了Serializable之外,使用Parcelable也可以实现相同的效果,

不过不同于将对象进行序列化,Parcelable方式的实现原理是将一个完整的对象进行分解,

而分解后的每一部分都是Intent所支持的数据类型,这样也就实现传递对象的功能了。

实现Parcelable的作用

1)永久性保存对象,保存对象的字节序列到本地文件中;

2)通过序列化对象在网络中传递对象;

3)通过序列化在进程间传递对象。

选择序列化方法的原则

1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。

2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable 。

应用场景

需要在多个部件(Activity或Service)之间通过Intent传递一些数据,简单类型(如:数字、字符串)的可以直接放入Intent。复杂类型必须实现Parcelable接口。

使用实例及两种序列化的对比

android中接口的作用是什么意思,Android为什么要序列化相关推荐

  1. android中接口的作用是什么意思,详解Android接口Interface的使用和意义

    本文介绍是Android的一个重要的东西,接口Interface,详解两个方面: (1)Java是继承的,接口Interface是可以多个的,恰恰弥补了这个缺点. (2)回调,接口Interface里 ...

  2. android system.out.println,为什么“System.out.println”在Android中不起作用?

    为什么"System.out.println"在Android中不起作用? 我想在控制台中打印一些东西,这样我就可以调试它了.但出于某种原因,我的Android应用程序中没有打印任 ...

  3. Java中接口的作用,为什么要写接口?

    ** Java中接口的作用 转载于:https://www.zhihu.com/question/20111251 ** **困惑:**例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现 ...

  4. not found for signing config ‘debug‘Android中meta-data的作用xmlns:tools=“http://schemas.android.com/

    目录 not found for signing config 'debug' Android中meta-data的作用 xmlns:tools="http://schemas.androi ...

  5. android中gradle的作用,Gradle 之 Android 中的应用

    在上一篇文章中 Gradle 之语言基础 Groovy 主要介绍了 Groovy 的基础语法(如果没有 Groovy 的基础,建议先看看上篇文章,如果可以动手敲一下里面的示例代码就更好不过了),也是为 ...

  6. android中uri的作用,Android UrlUri详细解析

    概述 在项目开发中,有时会遇到解析Url.Uri的需求,要从中得到链接中的相应字段.参数等.有多种实现方式,在这里总结一下应用到的. URL与URI的区别 Uri - 统一资源标志符 Url - 统一 ...

  7. android中的mvp模式怎么定义,在android中使用MVP模式

    1.MVP介绍java 随着UI建立技术的功能日益加强,UI层也履行着愈来愈多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专一于处理数 据的可视化以及与用户的交互,同时 ...

  8. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )

    文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...

  9. android中注册的账号密码储存在,Android中使用SharedPreferences完成记住账号密码的功能...

    效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如 ...

最新文章

  1. 马化腾:腾讯要帮助中国加快数字化,主要靠小程序(附演讲)
  2. C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)
  3. hdu hide handkerchief
  4. SpringBoot依赖注入
  5. 我的runtime学习笔记
  6. 极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区
  7. HTML的Get方法URL传递中文参数,解决乱码问题
  8. 「Leetcode」242. 有效的字母异位词:可以拿数组当哈希表来用,但哈希值不要太大!
  9. Hololens Vuforia 物体识别
  10. 6. Keras-RNN应用
  11. 小米8绑定账号和设备验证失败_网赚项目刚需账号答疑大集合!
  12. 免费屏幕录像软件哪个好?简单几步教你快速录制无水印的高清视频!
  13. CSDN、博文视点名家讲坛之夏昕、林信良谈Spring框架
  14. 设置计算机用户权限,计算机管理员权限在哪里设置_电脑系统如何设置管理员权限-win7之家...
  15. 获取键盘按下的键位对应ask码
  16. ORA-04021导致oracle11gADG备库宕机问题处理
  17. 《Python网络爬虫从入门到实践 第2版》第14章 爬虫实践一:维基百科
  18. 哪家的微信三级分销系统功能比较好
  19. 若川的2019年度总结,波澜不惊
  20. 中文 latex 排版没有斜体

热门文章

  1. 发布一个域安全级别的无代码InfoPath表单作为文档库模版 (InfoPath 一)
  2. 用贝叶斯定理解决三门问题并用Python进行模拟(Bayes‘ Rule Monty Hall Problem Simulation Python)
  3. Facebook 面向个性化推荐系统的深度学习推荐模型
  4. 算法工程师面试备战笔记9_支持向量机(SVM)中的支持向量是什么意思
  5. 腾讯广告算法大赛 | 萌新粉丝投稿讲述数据竞赛小白观赛心得
  6. 显示所有大写字母python_python 输出所有大小写字母, range()以及列表切片
  7. 朋友圈发图多大不会被压缩_类风湿会不会引发肾病?会!本文告诉你对内脏的伤害有多大...
  8. Facebook账户 “ 解封、防封、养号 ” 知识要点
  9. 跨境电商,独立站和第三方平台孰更具优势?
  10. 宝塔linux修改默认编码,宝塔linux面板防护CC设置(示例代码)