Сериализация — это процесс преобразования объекта в поток байтов для его сохранения (например, в файл, базу данных) или передачи по сети. Десериализация — обратный процесс восстановления объекта из потока байтов.
В Android это часто используется для:
- Сохранения состояния Activity/Fragment при изменении конфигурации (с помощью
onSaveInstanceState
).
- Передачи данных между Activity/Service/BroadcastReceiver через
Intent
(с помощью putExtra
).
- Сохранения данных в SharedPreferences или файлах.
- Сетевой передачи данных.
В Android доступны два основных механизма сериализации:
-
Serializable:
- Стандартный интерфейс Java.
- Прост в реализации (достаточно имплементировать интерфейс).
- Может быть медленнее и создавать больше временных объектов по сравнению с
Parcelable
.
- Некоторые классы (например,
TextView
) неcериализуемы.
java
-
Parcelable:
- Интерфейс Android, оптимизированный для IPC (Inter-Process Communication).
- Более производительный и эффективный по сравнению с
Serializable
в Android.
- Требует больше ручной работы для реализации (
writeToParcel
, createFromParcel
).
- Предпочтительный способ для передачи данных между компонентами Android.
java
Сериализация — это процесс преобразования объекта в поток байтов для его сохранения (например, в файл, базу данных) или передачи по сети. Десериализация — обратный процесс восстановления объекта из потока байтов.
В Android это часто используется для:
- Сохранения состояния Activity/Fragment при изменении конфигурации (с помощью
onSaveInstanceState
).
- Передачи данных между Activity/Service/BroadcastReceiver через
Intent
(с помощью putExtra
).
- Сохранения данных в SharedPreferences или файлах.
- Сетевой передачи данных.
В Android доступны два основных механизма сериализации:
-
Serializable:
- Стандартный интерфейс Java.
- Прост в реализации (достаточно имплементировать интерфейс).
- Может быть медленнее и создавать больше временных объектов по сравнению с
Parcelable
.
- Некоторые классы (например,
TextView
) неcериализуемы.
java
-
Parcelable:
- Интерфейс Android, оптимизированный для IPC (Inter-Process Communication).
- Более производительный и эффективный по сравнению с
Serializable
в Android.
- Требует больше ручной работы для реализации (
writeToParcel
, createFromParcel
).
- Предпочтительный способ для передачи данных между компонентами Android.
java