Sobes.tech
Junior

Kas ir serializācija?

sobes.tech AI

Atbilde no AI

Objekta vai datu struktūras pārvēršana formātā, ko ir viegli uzglabāt (piemēram, failā, atmiņā, datu bāzē) vai nodot tīklā. Deserializācija ir pretējais process.

Android serializācija bieži tiek izmantota:

  • datu nodošanai starp Activity vai Fragment ar Intent vai Bundle.
  • Views stāvokļa saglabāšanai (piemēram, ekrāna pagriešanas laikā).
  • Datu kešatmiņai.
  • Datu apmaiņai ar attāliem serveriem (JSON, XML).

Galvenie serializācijas mehānismi Android:

  • Serializable: vienkārši lietojams, bet lēns un rada daudz pagaidu objektu. Ir daļa no standarta Java.
  • Parcelable: ātrāks un efektīvāks mehānisms, specifisks Android. Prasa vairāk boilerplate koda realizācijai.
// Parcelable piemērs
class MyData implements Parcelable {
    private int value;
    private String text;

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

    // Parcelable realizācija
    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);
    }
}