首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android包裹,存储在内存中还是磁盘上?如何存储在磁盘上

Android包裹,存储在内存中还是磁盘上?如何存储在磁盘上
EN

Stack Overflow用户
提问于 2012-05-03 17:58:33
回答 2查看 3.1K关注 0票数 4

我看到包裹和可串行化在某种程度上是可以互换使用的,或者至少是在相同的上下文中不直观地使用。你能为我澄清一些事情吗?

  1. 是包裹的持久存储(磁盘上)或仅存储在内存中的
  2. ,我需要序列化才能将包裹数据存储到磁盘

谢谢你的洞察力,不,android dev手册并没有让我明白这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-03 18:07:32

我的回答是:

  1. 包用于扁平对象,以便它们可以存储在JVM运行的内存以外的其他地方。
  2. 您不需要将可序列化的包与包混合起来将数据存储到磁盘中。一个或另一个就足以将对象存储到磁盘上。

Serializable和Parcelable都是扁平Java对象的方法。

这些扁平的对象可以通过各种传输格式(包括磁盘文件)在进程之间传递。

可序列化来自核心Java,并且易于使用。

Parcelable来自Android,它有点复杂。

这个答案包括更多的细节:

https://stackoverflow.com/a/5551155/523135

这篇博客文章有示例代码Parcelable:

http://blog.cluepusher.dk/2009/10/28/writing-parcelable-classes-for-android/

这篇博客文章有示例可序列化代码:

http://www.javapractices.com/topic/TopicAction.do?Id=45

票数 4
EN

Stack Overflow用户

发布于 2015-09-10 07:27:58

阅读包裹文件。包裹不应存放在持久化的仓库里。

节选:

"...Parcel不是一种通用的序列化机制。这个类(以及相应的用于将任意对象放置到一个包中的Parcelable )被设计为一种高性能的IPC传输.“

“.将任何包数据放置到持久存储中是不合适的:对包中任何数据的底层实现的更改会使旧数据不可读。”

http://developer.android.com/reference/android/os/Parcel.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10436864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档