Sobes.tech
Junior

Wat is serialisatie?

sobes.tech AI

Antwoord van AI

Het omzetten van een object of datastructuur naar een formaat dat gemakkelijk kan worden opgeslagen (bijvoorbeeld in een bestand, geheugen, database) of via het netwerk kan worden verzonden. Deserialisatie is het tegenovergestelde proces.

In Android wordt serialisatie vaak gebruikt voor:

  • Het overdragen van gegevens tussen Activity of Fragment met behulp van Intent of Bundle.
  • Het opslaan van de staat van Views (bijvoorbeeld bij schermrotatie).
  • Het cachen van gegevens.
  • Het uitwisselen van gegevens met externe servers (JSON, XML).

De belangrijkste serialisatie-mechanismen in Android:

  • Serializable: Eenvoudig te gebruiken, maar langzaam en creëert veel tijdelijke objecten. Het maakt deel uit van de standaard Java-bibliotheek.
  • Parcelable: Sneller en efficiënter mechanisme, specifiek voor Android. Vereist meer boilerplate-code.
// Voorbeeld Parcelable
class MyData implements Parcelable {
    private int value;
    private String text;

    // Constructor
    public MyData(int value, String text) {
        this.value = value;
        this.text = text;
    }

    // Parcelable-implementatie
    protected MyData(Parcel in) {
        value = in.readInt();
        text = in.readString();
    }

    public static final Creator<MyData> CREATOR = new Creator<MyData>() {
        @Override
        public MyData createFromParcel(Parcel in) {
            return new MyData(in);
        }

        @Override
        public MyData[] newArray(int size) {
            return new MyData[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(value);
        dest.writeString(text);
    }
}