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