"Virtually all applications in the Android environment have to exchange data between activities. The data is added to another activity's intent object. For this to work, the object needs to be either Serializable or Parcelable. You can designate a class Serializable by implementing the interface, and Java will automatically serialize it. The downside to this approach is that it leads to the collection of garbage code and poor performance. I prefer to use Parcelable, which was developed specifically for Android. Using this approach, the serialization is implemented manually by the code, not the development platform. Also, reflection is not used during this process, and no garbage is created, so the application's performance is not impacted."