【发布时间】:2012-03-08 13:05:32
【问题描述】:
所以我知道建议在 android 中使用 Parcelable 而不是 Serializable,因为它更快。
我的问题是:避免使用 Serializable 是不可能的吗?
如果我有一个想要序列化的自定义对象,假设我有以下类定义
public class Person {
String name;
int Age;
...
....
}
使这个 parcelable 很容易,因为 Person 类包含 parcel.write*() 支持的类型,即有 parcel.writeString 和 parcel.writeInt
现在,如果 Person 类如下:
public class PersonTwo {
MyCustomObj customObj;
String name;
int Age;
...
....
}
我应该如何打包 MyCustomObj 对象? 看来我需要再次使用可序列化?但同样,我认为使用可序列化是很慢的,而且似乎我们别无选择,只能在这种情况下使用它。
我不明白
谁能告诉我在这种情况下我将如何打包 PersonTwo?
【问题讨论】:
-
我建议你使用Serializable。根据对 Nexus 5 的测试,它比 Parcelable 快得多。见bitbucket.org/afrishman/androidserializationtest。要记住的主要事情是 Serializable 仅在默认设置下很慢。如果您使用手动序列化,它会快得多。详情请查看以上链接。
标签: android serialization android-intent parcelable parcel