422 Stimmen

Android: Unterschied zwischen Parcelable und Serializable?

Warum bietet Android 2 Schnittstellen für die Serialisierung von Objekten? Interoptieren serialisierbare Objekte mit Android Binder und AIDL-Dateien?

22voto

Nemanja Kovacevic Punkte 3470

Ich werde derjenige sein, der sich für die Serializable einsetzt. Der Geschwindigkeitsunterschied ist nicht mehr so drastisch, da die Geräte viel besser sind als noch vor einigen Jahren, und es gibt auch andere, subtilere Unterschiede. Siehe mein Blog Beitrag zu diesem Thema für weitere Informationen.

12voto

kenju Punkte 5476

1. Serialisierbar

@see http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

Schnittstelle von was?

  • ist eine Standard-Java-Schnittstelle

Geschwindigkeit

  • langsamer als Parcelable

2. Paketversandfähig

@see http://developer.Android.com/reference/Android/os/Parcelable.html

Schnittstelle von was?

  • ist die Android.os-Schnittstelle
    • was bedeutet, dass Google Parcelable für eine bessere Leistung unter Android entwickelt hat

Geschwindigkeit

  • schneller (weil es für die Verwendung bei der Android-Entwicklung optimiert ist)

> Fazit

Beachten Sie, dass Serializable eine Standard-Java-Schnittstelle ist und Parcelable für die Android-Entwicklung bestimmt ist.

8voto

Tushar Thakar Punkte 302

Es gibt einige Leistungsprobleme in Bezug auf Marshaling und Unarshaling. Parcelable ist doppelt so schnell wie Serializable.

Bitte klicken Sie auf den folgenden Link:

http://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-Android-app-development

4voto

Deep P Punkte 536

Die Implementierung von parcelable kann schneller gehen, wenn Sie das paracelable Plugin in Android Studio verwenden. Suchen Sie nach Android Parcelable Code Generator

4voto

ClemB Punkte 87

Die Serializable-Schnittstelle kann auf die gleiche Weise wie die Parcelable-Schnittstelle verwendet werden, was zu einer (nicht wesentlich) besseren Leistung führt. Überschreiben Sie einfach diese beiden Methoden, um den manuellen Marshalling- und Unmarshalling-Prozess zu behandeln:

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

Dennoch scheint es mir, dass bei der Entwicklung von nativen Android, mit dem Android api ist der Weg zu gehen.

Siehe:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X