Android-посылка, хранящаяся в памяти или на диске? Как сохранить на диск

Я вижу, что посылка и сериализуемый используются взаимозаменяемо или, по крайней мере, неинтуитивно в одном и том же контексте. Можете ли вы прояснить некоторые вещи для меня?

  1. являются постоянным хранилищем посылки (на диске) или хранятся только в памяти

  2. мне нужна сериализуемость для хранения данных посылки на диск

спасибо за понимание, и нет, руководство Android dev не делает это очевидным для меня


person CQM    schedule 03.05.2012    source источник


Ответы (2)


Мои ответы:

  1. Пакеты предназначены для выравнивания объектов, чтобы их можно было хранить где-то еще, кроме оперативной памяти JVM.

  2. Вам не нужно смешивать сериализуемые файлы с пакетами для хранения данных на диске. Одного или другого достаточно для хранения объектов на диске.


Serializable и Parcelable — это два способа выравнивания ваших объектов Java.

Эти плоские объекты могут передаваться между процессами через различные форматы передачи, включая файлы на диске.

Serializable исходит из ядра Java и прост в использовании.

Parcelable исходит от Android и немного сложнее.

Этот ответ включает в себя более подробную информацию:

https://stackoverflow.com/a/5551155/523135

Этот пост в блоге содержит пример кода Parcelable:

http://blog.cluepusher.dk/2009/10/28/writing-parcelable-classes-for-android/

В этом сообщении блога есть пример кода Serializable:

http://www.javapractices.com/topic/TopicAction.do?Id= 45

person Cory Trese    schedule 03.05.2012

Прочтите документацию Parcel. Посылка не должна помещаться в постоянное хранилище.

Выдержка:

"...Parcel не является универсальным механизмом сериализации. Этот класс (и соответствующий Parcelable API для размещения произвольных объектов в Parcel) разработан как высокопроизводительный IPC-транспорт..."

«... нецелесообразно помещать какие-либо данные Parcel в постоянное хранилище: изменения в базовой реализации любых данных в Parcel могут сделать старые данные нечитаемыми».

http://developer.android.com/reference/android/os/Parcel.html

person KK.    schedule 10.09.2015