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?

2voto

Horyun Lee Punkte 1023

Parcelable viel schneller als serializable mit Binder, weil serializable verwenden Reflexion und verursachen viele GC. Parcelable ist Design zu optimieren, um Objekt übergeben.

Hier der Link zur Referenz. http://www.developerphil.com/parcelable-vs-serializable/

2voto

Kushal Punkte 7429

Ich bin spät dran mit meiner Antwort, aber ich hoffe, dass sie anderen helfen wird.

In Bezug auf Geschwindigkeit , Parcelable > Serializable . Aber, Benutzerdefiniert serialisierbar ist eine Ausnahme. Es ist fast in Reichweite von Parcelable oder sogar noch schneller.

Hinweis : https://www.geeksforgeeks.org/customized-serialization-and-deserialization-in-java/

Beispiel:

Zu serialisierende benutzerdefinierte Klasse

class MySerialized implements Serializable { 

    String deviceAddress = "MyAndroid-04"; 

    transient String token = "AABCDS"; // sensitive information which I do not want to serialize

    private void writeObject(ObjectOutputStream oos) throws Exception {
        oos.defaultWriteObject();
        oos.writeObject("111111" + token); // Encrypted token to be serialized
    }

    private void readObject(ObjectInputStream ois) throws Exception {
        ois.defaultReadObject(); 
        token = ((String) ois.readObject()).subString(6);  // Decrypting token
    }

}

1voto

Rankush Kumar Punkte 156

Sie können die serialisierbaren Objekte in den Intents verwenden, aber zum Zeitpunkt der Serialisierung eines Parcelable-Objekts kann es eine schwerwiegende Ausnahme wie NotSerializableException geben. Es wird nicht empfohlen, serializable mit Parcelable zu verwenden. Daher ist es besser, Parcelable mit dem Objekt zu erweitern, das Sie mit Bundle und Intents verwenden möchten. Da dieses Parcelable Android-spezifisch ist, hat es keine Nebeneffekte. :)

0voto

Cprk Praveen Punkte 109

Serialisierbar

Serializable ist eine markierbare Schnittstelle oder wir können als leere Schnittstelle aufrufen. Sie hat keine vorimplementierten Methoden. Serializable wird ein Objekt in einen Bytestrom umwandeln. So kann der Benutzer die Daten zwischen einer Aktivität und einer anderen Aktivität weitergeben. Der Hauptvorteil von serializable ist, dass die Erstellung und Weitergabe von Daten sehr einfach ist, aber es ist ein langsamer Prozess im Vergleich zu parcelable.

Paketfähig

Parcel able ist schneller als serializable. Parcel able wird das Objekt in einen Byte-Stream umwandeln und die Daten zwischen zwei Aktivitäten weiterleiten. Das Schreiben von paketfähigem Code ist im Vergleich zur Serialisierung etwas komplexer. Es werden nicht mehr temporäre Objekte erstellt, während die Daten zwischen zwei Aktivitäten übergeben werden.

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