Android: разница между Parcelable и Serializable? - PullRequest
272 голосов
/ 24 июля 2010

Почему Android предоставляет 2 интерфейса для сериализации объектов? Сериализуемые объекты взаимодействуют с файлами Android Binder и AIDL?

Ответы [ 13 ]

1 голос
/ 24 апреля 2017

Сериализуемый интерфейс можно использовать так же, как интерфейс Parcelable, что приводит к (не очень) лучшему быстродействию.Просто перезапишите эти два метода для ручного процесса маршалинга и демаршаллинга:

private void writeObject(java.io.ObjectOutputStream out)
    throws IOException
private void readObject(java.io.ObjectInputStream in)
    throws IOException, ClassNotFoundException

Тем не менее, мне кажется, что при разработке нативного Android использование Android API - это путь.

См .:

1 голос
/ 16 апреля 2012

вы можете использовать сериализуемые объекты в намерениях, но во время выполнения сериализации объекта Parcelable это может дать серьезное исключение, например NotSerializableException. Разве не рекомендуется использовать сериализуемый с Parcelable. Поэтому лучше расширить Parcelable объектом, который вы хотите использовать с помощью связки и намерений. Поскольку этот Parcelable специфичен для Android, у него нет побочных эффектов. :)

0 голосов
/ 15 июля 2014

Посылается намного быстрее, чем сериализуемый с Binder, потому что сериализуемый использует отражение и вызывает много GC.Parcelable - это дизайн для оптимизации передачи объекта.

Вот ссылка на ссылку.http://www.developerphil.com/parcelable-vs-serializable/

...