Ответ
В Android поддерживают сериализацию следующие объекты:
- Parcelable – более производительный аналог Serializable, оптимизированный под Android.
data class User(val name: String, val age: Int) : Parcelable {
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(name)
parcel.writeInt(age)
}
// ...
}
- Serializable – стандартный Java-интерфейс, но менее эффективный из-за рефлексии.
data class User(val name: String, val age: Int) : Serializable
-
Bundle – используется для передачи данных между компонентами (Activity, Fragment).
-
JSON (Gson, Moshi, kotlinx.serialization) – текстовые форматы для сетевых запросов и хранения.
-
SharedPreferences – для простого хранения примитивов и строк.
Parcelable предпочтительнее для передачи между компонентами, а Serializable удобен, если нужна совместимость с Java/Kotlin вне Android.