Ответ
Parcelable работает быстрее, чем Serializable, потому что он оптимизирован специально для Android и избегает накладных расходов на reflection и сериализацию через JVM.
Основные отличия:
- Parcelable требует явной реализации (writeToParcel, CREATOR), что делает процесс более контролируемым.
- Serializable использует стандартную Java-сериализацию, которая медленнее из-за reflection и создания временных объектов.
Пример Parcelable:
data class User(val name: String, val age: Int) : Parcelable {
constructor(parcel: Parcel) : this(parcel.readString()!!, parcel.readInt())
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(name)
parcel.writeInt(age)
}
override fun describeContents() = 0
companion object CREATOR : Parcelable.Creator<User> {
override fun createFromParcel(parcel: Parcel) = User(parcel)
override fun newArray(size: Int) = arrayOfNulls<User>(size)
}
}