Warum bietet Android 2 Schnittstellen für die Serialisierung von Objekten? Interoptieren serialisierbare Objekte mit Android Binder
und AIDL-Dateien?
Antworten
Zu viele Anzeigen?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/
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
}
}
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. :)
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.
- See previous answers
- Weitere Antworten anzeigen