Какие знаешь интерфейсы для сериализации в Android

«Какие знаешь интерфейсы для сериализации в Android» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть несколько популярных способов сериализации данных:

  1. Parcelable - высокопроизводительный механизм Android для сериализации объектов в памяти. Требует ручной реализации:
class User : Parcelable {
    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(name)
    }
    // ... остальная реализация
}
  1. Serializable - стандартный Java-интерфейс, проще в реализации, но медленнее Parcelable:
class User : Serializable {
    val name: String = ""
}
  1. JSON (Gson/Moshi) - текстовые форматы через библиотеки:
val gson = Gson()
val json = gson.toJson(user)
  1. Protocol Buffers - бинарный формат от Google (через protobuf-lite)

  2. Room TypeConverters - для сериализации в БД

Parcelable предпочтительнее для межпроцессного взаимодействия, а JSON - для сетевых запросов и хранения.