Sobes.tech
Junior

Serileştirme nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir nesne veya veri yapısının, kolayca depolanabilecek (örneğin, dosya, bellek, veritabanı) veya ağ üzerinden iletilebilecek bir formata dönüştürülmesi. Deserializasyon ise ters işlemdir.

Android'de, serileştirme genellikle şu amaçlar için kullanılır:

  • Intent veya Bundle kullanarak Activity veya Fragment arasında veri iletimi.
  • Görünümlerin durumunu kaydetmek (örneğin, ekran döndürme sırasında).
  • Verileri önbelleğe almak.
  • Uzak sunucularla veri alışverişi yapmak (JSON, XML).

Android'deki temel serileştirme mekanizmaları:

  • Serializable: Kullanımı kolaydır, ancak yavaş ve çok sayıda geçici nesne oluşturur. Java standart parçasıdır.
  • Parcelable: Daha hızlı ve etkilidir, Android'e özgüdür. Uygulama için daha fazla kod gerektirir.
// Parcelable örneği
class MyData implements Parcelable {
    private int value;
    private String text;

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

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