kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 SRam
SRam
Вопрос

в чем разница между Parcelable и Serialization, используемыми в android

Я хочу знать точно,

  1. должен ли я использовать технику parcelable или сериализации. для передачи данных от одного вида деятельности к другому?
  2. обязательно ли использовать одну из них для отправки данных от одного к другому?
  3. когда я должен их использовать?
  4. и точная разница между ними и производительность обоих в аспектах java.

Заранее спасибо.


 public class GetSetClass implements Serializable {
    private int dt = 10;

    /** pass any object, drwabale */
    public int getDt() {
        return dt;
    }

    public void setDt(int dt) {
        this.dt = dt;
    }
}
32 2012-06-18T06:32:52+00:00 5
 itiskj
itiskj
Редактировал вопрос 18-го августа 2015 в 9:03
Программирование
android
serializable
parcelable
 user1923551
user1923551
4-го декабря 2013 в 12:57
2013-12-04T12:57:52+00:00
Дополнительно
Источник
Редактировать
#16460887

Эти понятия связаны в процесс взаимодействия (IPC).

При передаче данных между двумя приложениями, мы должны убедиться, что оба приложения должны понимать формат данных, который посылается.

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

Этот процесс преобразования не примитивных типов для примитивов и отправку по другим приложение по какому-то каналу связи называется сериализация. Обратный процесс называется Де-сериализации.

В Java, МПК в значительной степени зависит от Serializables для сериализации. Но сериализация предназначена поддерживать настольные приложения в виду. Когда вы делаете МПК в мобильных приложениях мы должны убедиться, что процесс IPC является не слишком тяжелым.

В простых терминах сериализации-это тяжелая концепция для IPC. Так что на месте сериализация Андроид выбрал вяжущих для достижения легкий вес в процессе коммуникации. Вяжущие внутренне сильно зависит от посылок, чтобы сделать МПК. Участки света serializables вес. Его предпочитают использовать участки для маршалинг объектов на байтовые потоки.

Примечание: связка IPC во многом зависит от общей концепции памяти, чтобы убедиться, что там не так много дублирования данных при обмене между приложениями.

Brad Larson
Brad Larson
Редактировал ответ 10-го апреля 2014 в 3:46
27
0
Решение / Ответ
Arun George
Arun George
18-го июня 2012 в 6:41
2012-06-18T06:41:40+00:00
Дополнительно
Источник
Редактировать
#16460883

Следует ли мне использовать технику посылки или сериализации для передачи данных от одного вида деятельности к другому.

Если вы отправляете данные/объект не примитивного типа в другой вид деятельности через intent, вы должны либо Serialize, либо реализовать Parcelable для этого объекта. Предпочтительной техникой является Parcelable, поскольку она не влияет на производительность.

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

Это обязательно/используется только для отправки объектов данных непервичного типа.

и точная разница между ними и производительность обоих в аспектах java.

Сериализация действительно влияет на производительность. Для более подробной информации посмотрите эту ссылку https://stackoverflow.com/questions/9323044/android-parcelable-and-serializable

 Community
Community
Редактировал ответ 23-го мая 2017 в 11:54
19
0
Bette Devine
Bette Devine
19-го июня 2015 в 7:43
2015-06-19T07:43:15+00:00
Дополнительно
Источник
Редактировать
#16460888

Есть очень хорошее объяснение разницы между Parcelable и сериализация.

Для начала ваш вопрос, хотя его долгое время, это может помочь другим:

  1. должен ли я использовать parcelable или метод сериализации для передачи данных от одной деятельности к другой?

Ответ: Parcelable-это лучший выбор (почему объяснил выше).

  1. обязательно ли использовать один из них для передачи данных от одного к другому?

Ответ: да, как отправлять данные (объект) с одного на другой требует потоками байтов, которые будут записаны и извлекать и что может быть сделано либо через parcelable или сериализации.

  1. когда я должен использовать их?

Ответ: в этой части вы arleady ответил я.е передаче данных из одной активности в другую.

  1. и точную разницу между ними и представления их в Java аспектах.

Ответ: 1. Parcelable хорошо документированы в SDK для Android; сериализации с другой стороны доступна в Java.

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

  2. Сериализация-это интерфейс маркера, который подразумевает, что пользователь не может упаковать данные в соответствии с их требованиями. В сериализации маршалинга операция выполняется на виртуальной машине Java (JVM) с использованием Java API рефлексии. Это помогает идентифицировать члена Java-объекты и поведение, но также заканчивается создание большого количества объектов мусора. Благодаря этому, процесс сериализации является медленным по сравнению с Parcelable.

Ответ взят из: эту ссылку

См. также:сериализации объяснял

 Community
Community
Редактировал ответ 23-го мая 2017 в 11:54
5
0
Sridhar Nalam
Sridhar Nalam
4-го декабря 2013 в 11:34
2013-12-04T11:34:09+00:00
Дополнительно
Источник
Редактировать
#16460886

Java Serializable:. Serializable происходит из стандартной Java и намного проще в реализации, все, что вам нужно сделать, это реализовать интерфейс Serializable и добавить переопределение двух методов.
Проблема с Serializable в том, что он пытается соответствующим образом обработать все под солнцем и использует много рефлексии, чтобы определить типы, которые сериализуются. Поэтому он превращается в "говяжий" объект.

Androids Parcelable:-... Файл Android Inter-Process Communication (AIPC), чтобы сообщить Android, как он должен маршалить и размаршалить ваш объект. Он менее общий и не использует отражение, поэтому он должен иметь гораздо меньше накладных расходов и быть намного быстрее.

Читать далее http://www.3pillarglobal.com/blog/parcelable-vs-java-serialization-android-app-development

3
0
Jeffrey Blattman
Jeffrey Blattman
1-го августа 2013 в 8:32
2013-08-01T20:32:59+00:00
Дополнительно
Источник
Редактировать
#16460885

и посылка, и сериализация - это способы маршалла и размаршалла данных. в android это используется для передачи непервичных типов данных между компонентами и процессами. в целом, android допускает либо сериализуемые, либо посылаемые объекты, поэтому вы можете выбрать свой метод. исключение составляют интерфейсы AIDL. объекты должны быть посылаемыми для передачи/возврата.

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

и, следовательно, именно поэтому парсинг быстрее. объект не нужно отражать, чтобы обнаружить поля. именно отражение делает его медленным.

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

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

Jeffrey Blattman
Jeffrey Blattman
Редактировал ответ 18-го ноября 2013 в 4:45
2
0
Похожие сообщества 18
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
19 674 пользователей
Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. Размещение бесплатное. 📌 ВАЖНО: Правила публикации и правила канала: 📌 Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-12-10
Открыть telegram
StartAndroid Ru Chat
StartAndroid Ru Chat
2 849 пользователей
Android чат сайта startandroid.ru Канал - @startandroid
Открыть telegram
Android Architecture
Android Architecture
2 757 пользователей
Русскоязычный чат для обсуждения архитектуры Android приложений. У нас атмосфера взаимопомощи и уважения друг к другу! Общий чат по Android: @android_ru Чат для вакансий: @mobile_jobs Подробнее: https://telegra.ph/Android-Architecture-06-02
Открыть telegram
Android Declarative
Android Declarative
1 772 пользователей
Чат русскоязычного android-сообщества, посвященный декларативным UI-фреймворкам: Jetpack Compose, Anko, Anvil, Litho, Splitties за оффтопик пожизненная ссылка в @android_ru @jetpack_compose - новости https://bit.ly/32pRDWm - примеры компонентов
Открыть telegram
AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
1 690 пользователей
Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно 1раз в 2 недели ставьте в тексте тег #vacancy. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov Флудить тут @pogromista
Открыть telegram
Android ROM Development
Android ROM Development
1 650 пользователей
Discussion about Android ROM development and testing. App development group: 🖥 https://t.me/joinchat/CiGS0z9LkBPQ_8gjz3eAdA
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 15 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией