我是Android的新手,我在Parcelable界面周围遇到了一些麻烦。
我最终发现了这个: https://stackoverflow.com/a/2141166/6647053
上述答案中的观点是,当一个对象传递给一个活动时,这个:
intent.putExtra("object", parcelableObject);
比这更好:
intent.putExtra("object", serializableObject);
我的问题是: 在Parcelable中使用Parcel的读/写Serializable方法是否有任何性能优势(而不是只使用带有intent.putExtra的可序列化对象)?为什么/为什么不呢?
示例:
public class MyParcelable implements Serializable, Parcelable {
/* Some Custom Object Stuff Here */
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeSerializable(this);
}
public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel parcel) {
return parcel.readSerializable();
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}
答案 0 :(得分:1)
写这个没有任何好处:parceling和序列化一样慢。
在普通Java中,Externalizable
的效果可能优于Serializable
,因为您提供了自己的readExternal(ObjectInput in)
和writeObject(ObjectOutput out)
,您需要在其中手动序列化字段而不是依靠JVM进行内省并自动为您完成。 Android的Parcelable
也有类似用途。