A great WordPress.com site

Parcelable vs Serializable

This article has a good explanation of Parcelable vs Serializable. In summary, the downside of serializable is that the run time needs to invoke reflection while serializing each class member, which may be a performance drain for bigger objects that are serialized more frequently. Parcelable solves this problem by explicitly defining how each class member should be serialized. As part of implementing Parcelable, the writeToParcel method should be over-ridden. Some code:

However, the catch in implementing Parcelable is for large objects, that each time a new class member is added, its the responsibility of the developer to also the add corresponding code in the writeToParcel method. If this is not done, this new class member will not be serialized and the default value when de-serializing the object will be null.

Hence, while deciding whether to implement Parcelable, the trade off is between a minor improvement in performance (vs.) the possibility of introducing errors due to missed writeToParcel implementation for new class members and additional unit testing involved in testing the parceling methods.