Sobes.tech
Junior

Co je serializace?

sobes.tech AI

Odpověď od AI

Převod objektu nebo datové struktury do formátu, který lze snadno uložit (například do souboru, paměti, databáze) nebo přenést přes síť. Deserializace je opačný proces.

V Androidu se serializace často používá pro:

  • Přenos dat mezi Activity nebo Fragment pomocí Intent nebo Bundle.
  • Uložení stavu Views (například při otočení obrazovky).
  • Ukládání dat do cache.
  • Výměnu dat s vzdálenými servery (JSON, XML).

Hlavní mechanismy serializace v Androidu:

  • Serializable: Snadné na použití, ale pomalé a vytváří hodně dočasných objektů. Je součástí standardní Java knihovny.
  • Parcelable: Rychlejší a efektivnější mechanismus, specifický pro Android. Vyžaduje více boilerplate kódu.
// Příklad Parcelable
class MyData implements Parcelable {
    private int value;
    private String text;

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

    // Implementace Parcelable
    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);
    }
}