Назад к вопросам
Junior
147
questionbank
Что такое сериализация?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Сериализация — это процесс преобразования объекта в последовательность байтов для его сохранения или передачи. Десериализация — обратный процесс: восстановление объекта из этой последовательности.
В Android часто используется для:
- Передачи данных между Activity/Fragment через Intent (реализация
Parcelable). - Сохранения состояния пользовательского интерфейса.
- Хранения данных в SharedPreferences или файлах.
- Передачи данных по сети (например, JSON, Protobuf).
Основные механизмы в Android:
Serializable: Стандартный Java-интерфейс. Простой в реализации, но медленнее и создает больше мусора по сравнению сParcelable. Использует рефлексию.Parcelable: Android-специфичный интерфейс. Быстрее и эффективнее для межпроцессного взаимодействия (IPC). Требует ручной реализации методовwriteToParcel()иcreateFromParcel().- JSON/XML: Для передачи данных по сети. Требуют библиотек для парсинга (например, GSON, Jackson, Moshi).
Пример использования Parcelable:
@Parcelize
data class User(val id: Int, val name: String) : Parcelable
(используя @Parcelize плагин Kotlin)
Пример использования Serializable:
public class Product implements Serializable {
private int id;
private String name;
public Product(int id, String name) {
this.id = id;
this.name = name;
}
// геттеры и сеттеры
}
Выбор между Serializable и Parcelable зависит от задачи. Для IPC предпочтительнее Parcelable. Для сохранения объектов на диск или передачи по сети часто используют JSON/XML. Serializable удобен для простых случаев, но имеет недостатки в производительности.