Sobes.tech
Junior

Čo je serializácia?

sobes.tech AI

Odpoveď od AI

Prevod objektu alebo dátovej štruktúry do formátu, ktorý je možné ľahko uložiť (napríklad do súboru, pamäte, databázy) alebo preniesť cez sieť. Deserializácia je opačný proces.

V Android sa serializácia často používa na:

  • Prenos dát medzi Activity alebo Fragment pomocou Intent alebo Bundle.
  • Uloženie stavu Views (napríklad pri otáčaní obrazovky).
  • Cacheovanie dát.
  • Výmenu dát s vzdialenými servermi (JSON, XML).

Hlavné mechanizmy serializácie v Android:

  • Serializable: Jednoduché na použitie, ale pomalé a vytvára veľa dočasných objektov. Súčasť štandardnej Java knižnice.
  • Parcelable: Rýchlejší a efektívnejší mechanizmus, špecifický pre Android. Vyžaduje viac boilerplate kódu.
// Príklad Parcelable
class MyData implements Parcelable {
    private int value;
    private String text;

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

    // Implementácia 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);
    }
}