Что быстрее работает Serializable или Parcelable

«Что быстрее работает Serializable или Parcelable» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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)
    }
}