Android: Unterschied zwischen Parcelable und Serializable?
Warum Android bietet 2 Schnittstellen für das serialisieren von Objekten? Tun Serialisierbare Objekte interopt mit Android Binder
und AIDL-Dateien?
InformationsquelleAutor der Frage live2dream95 | 2010-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Android wir wissen, dass wir nicht einfach nur übergeben von Objekten zu Aktivitäten. Die Objekte müssen entweder implementiert Serializable oder Parcelable-interface zu tun.
Serializable
Serializable ist ein standard-Java-Schnittstelle. Sie können einfach zu implementieren Serializable-interface hinzufügen und überschreiben von Methoden.Das problem bei diesem Ansatz ist, dass reflection verwendet wird, und es ist ein langsamer Prozess. In dieser Methode erstellen Sie eine Menge von temporären Objekten und verursachen einiges an garbage-collection. Serializable-interface ist einfacher zu implementieren.
Blick auf das Beispiel unten (Serializable)
Parcelable
Parcelable-Prozess ist viel schneller als serialisierbar. Einer der Gründe dafür ist, dass wir explizit über den serialisierungsprozess statt mit Reflexion zu erschließen. Es steht auf Grund, dass der code wurde stark für diesen Zweck optimiert.
Blick auf das Beispiel unten (Parcelable)
Abschluss.
InformationsquelleAutor der Antwort Sujith
Serializable ist ein standard-Java-Schnittstelle. Sie markieren Sie einfach eine Klasse Serializable implementieren die Schnittstelle, und Java wird automatisch serialisieren in bestimmten Situationen.
Parcelable ist eine Android-spezifische Schnittstelle, wo Sie bei der Implementierung der Serialisierung selbst. Es wurde geschaffen, um viel effizienter, Serializable, und zu erhalten, um einige Probleme mit der Standard-Java-Serialisierung-Schema.
Ich glaube, der Binder und AIDL Arbeit mit Parcelable-Objekte.
Allerdings können Sie verwenden Serialisierbare Objekte, die in Absichten.
InformationsquelleAutor der Antwort Cheryl Simon
Quelle zu diesem Punkt: http://www.developerphil.com/parcelable-vs-serializable/
InformationsquelleAutor der Antwort codercat
In Parcelable, die Entwickler beim schreiben von benutzerdefinierten code für das Marshalling und unmarshaling so schafft es weniger Müll-Objekten im Vergleich zu Serialisierung. Die Leistung von Parcelable über Serialisierung dramatisch verbessert (rund zwei mal schneller), da diese benutzerdefinierte Implementierung.
Serialisierung ist ein marker-interface, was bedeutet, dass Benutzer kann nicht gemarshallt werden die Daten gemäß Ihren Anforderungen. In der Serialisierung, Marshalling-Vorgang wird ausgeführt, auf dem eine Java Virtual Machine (JVM) mit Hilfe der Java-reflection-API. Dies hilft bei der Identifizierung der Java-Objekt-Mitglied und Verhalten, aber auch die landet, erstellen eine Menge Müll-Objekte. Durch die Serialisierung der Prozess ist langsam im Vergleich zu Parcelable.
Edit: Was ist der Sinn des marshalling und unmarshalling?
In wenigen Worten, "marshalling" bezeichnet den Prozess der Umwandlung von Daten oder die Objekte inbto einen byte-stream, und "unmarshalling" ist der umgekehrte Prozess der Umwandlung der byte-stream schnabel, um Ihre ursprünglichen Daten-oder Objekt. Die Umwandlung wird erreicht durch "Serialisierung".
http://www.jguru.com/faq/view.jsp?EID=560072
InformationsquelleAutor der Antwort Utsav
Bin ich eigentlich derjenige sein, der Kerl, die sich für die Serialisierbar sind. Der speed Unterschied ist nicht so drastisch mehr, denn die Geräte sind weit besser als vor einigen Jahren und da gibt es auch andere, subtilere Unterschiede. Sehen mein blog post zu dem Thema für mehr info.
InformationsquelleAutor der Antwort Nemanja Kovacevic
1. Serializable
@sehen
http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
- Schnittstelle, was?
Geschwindigkeit
2. Parcelable
@sehen
http://developer.android.com/reference/android/os/Parcelable.html
- Schnittstelle, was?
Geschwindigkeit
> Fazit
Sich bewusst sein, dass Serialisierbar ist eine standard-Java-interface, und Parcelable ist für die Android-Entwicklung
InformationsquelleAutor der Antwort phi
Gibt es einige performance-Problem in Bezug auf das Marshalling und unmarshaling. Parcelable ist zweimal schneller als Serialisierbar.
Gehen Sie bitte über den folgenden link:
http://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-android-app-development
InformationsquelleAutor der Antwort Tushar Thakar
Umsetzung von parcelable schneller sein können, wenn Sie paracelable plugin in android studio. Suche für Android Parcelable-code-generator
InformationsquelleAutor der Antwort Deep P
Parcelable vs Serializable ich beziehe diese zwei.
Serializable, die Einfachheit
Die Schönheit der serialisierbar ist, dass Sie brauchen nur zu implementieren das Serializable-interface auf die Klasse und Ihre Kinder. Es ist ein marker-interface, d.h. es gibt keine Methode die zu implementieren ist, wird Java einfach sein bestes, um es zu serialisieren effizient.
Das problem bei diesem Ansatz ist, dass reflection verwendet wird, und es ist ein langsamer Prozess. Dieser Mechanismus neigt auch dazu, eine Menge von temporären Objekten und verursachen einiges an garbage-collection.
Parcelable, Die Geschwindigkeit
Nun, Der Gewinner ist
Die Ergebnisse der tests, die von Philippe Breault zeigen, dass Parcelable ist mehr als 10x schneller als Serialisierbar. Einige andere Google-Ingenieure stehen hinter dieser Aussage als gut.
Stop Stop!!!!, Bevor Sie die Entscheidung
Und nun ein Vergleich zwischen Parcelable und benutzerdefinierte Serializable scheint fair! Die Ergebnisse können erstaunlich sein! Die benutzerdefinierte Serializable-Ansatz ist mehr als 3x schneller schreibt und 1,6 x schneller liest als Parcelable.
InformationsquelleAutor der Antwort farhana
Dem Serializable-Schnittstelle verwendet werden, die gleiche Weise wie die Parcelable ein, was (nicht viel) besseren Leistungen.
Nur überschreiben, diese beiden Methoden zu behandeln, manuelle marshalling und unmarshalling-Prozess:
Immer noch, es scheint mir, dass bei der Entwicklung von nativen Android-mit der Android-api ist der Weg zu gehen.
Finden Sie unter :
InformationsquelleAutor der Antwort Ceyfiroth
Serialisierung und Parcelable Unterschiede
Parcelable und Serialisierung verwendet werden, für das Marshalling und unmarshaling von Java-Objekten. Unterschiede zwischen den beiden sind oft zitiert werden, um Techniken zur Realisierung und performance-Ergebnisse. Aus meiner Erfahrung, ich bin gekommen, zu erkennen, die folgende Unterschiede in beiden Methoden:
Parcelable ist gut dokumentiert in der Android-SDK; Serialisierung auf der anderen Seite ist in Java. Es ist aus diesem Grund, dass Android-Entwickler bevorzugen Parcelable über die Serialisierung Technik.
In Parcelable, die Entwickler beim schreiben von benutzerdefinierten code für das Marshalling und unmarshaling so schafft es weniger Müll-Objekten im Vergleich zu Serialisierung. Die Leistung von Parcelable über Serialisierung dramatisch verbessert (rund zwei mal schneller), da diese benutzerdefinierte Implementierung.
Serialisierung ist ein marker-interface, was bedeutet, der Benutzer kann nicht gemarshallt werden die Daten gemäß Ihren Anforderungen. In der Serialisierung, Marshalling-Vorgang wird ausgeführt, auf dem eine Java Virtual Machine (JVM) mit Hilfe der Java-reflection-API. Dies hilft bei der Identifizierung der Java-Objekte Mitglied und Verhalten, aber auch die landet, erstellen eine Menge Müll-Objekte. Aufgrund dieser, der Serialisierungs-Prozess ist langsam im Vergleich zu Parcelable
InformationsquelleAutor der Antwort anoopbryan2
Parcelable viel schneller als serialisierbar mit Binder, weil serializable verwenden Sie reflektion und führen dazu, dass viele GC. Parcelable ist das design zu optimieren, um pass-Objekt.
Hier der link zur Referenz.
http://www.developerphil.com/parcelable-vs-serializable/
InformationsquelleAutor der Antwort Horyun Lee
können Sie das serializable-Objekte in den Absichten, aber zu der Zeit der Herstellung serialisiert, ein Parcelable Objekt es kann eine schwerwiegende Ausnahme wie NotSerializableException. Ist es nicht empfohlen, mit serializable-mit Parcelable . So ist es besser, erstreckt sich Parcelable mit dem Objekt, das Sie verwenden möchten, mit Bündel und Absichten. Als das Parcelable ist android-spezifisch, so dass es doesn ' T haben keine Nebenwirkungen.
🙂
InformationsquelleAutor der Antwort Rankush Agarwal