Android包裹,存储在内存或磁盘上?如何存储在磁盘上

时间:2012-05-03 17:58:34

标签: android serializable parcelable parcel

我认为parcel和serializable可以互换使用,或者至少在同一个环境中不直观。你能为我澄清一些事情吗?

  1. 是parcel的持久存储(在磁盘上)或仅存储在内存中

  2. 我是否需要序列化才能将宗地数据存储到磁盘

  3. 谢谢你的洞察力,不,android dev手册并没有让我明白

1 个答案:

答案 0 :(得分:3)

我的回答:

  1. Parcel用于展平对象,因此它们可以存储在JVM运行内存以外的其他位置。

  2. 您无需将serializable与parcel混合以将数据存储到磁盘。只有一个或另一个足以将对象存储到磁盘。


  3. Serializable和Parcelable是展平Java对象的两种方法。

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

    Serializable来自核心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