Android-də obyektlərin seriyalaşdırılması və parse edilməsi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Seriyalaşdırma — obyektin bayt axınına çevrilməsi prosesidir ki, bu da saxlanması üçün (məsələn, fayl və ya verilənlər bazasında) və ya ötürülməsi üçün (məsələn, şəbəkə vasitəsilə) istifadə olunur.
Parsinq (və ya deserializasiya) isə əks prosesdir: bayt axınından obyektin bərpası.
Android-də bu məqsədlər üçün ən çox Serializable və ya Parcelable istifadə olunur.
Serializable (Java-nın standart interfeysi): istifadə etmək asandır (yalnız interfeysi həyata keçirmək lazımdır), lakin Parcelable-dən daha yavaşdır və çox sayda müvəqqəti obyekt yaradır.
// Serializable nümunəsi
import java.io.Serializable;
public class MySerializableObject implements Serializable {
private static final long serialVersionUID = 1L; // Tövsiyə olunur göstərmək
private String name;
private int age;
public MySerializableObject(String name, int age) {
this.name = name;
this.age = age;
}
// Getter və setterlər
}
Parcelable (Android-ə xas interfeys): Serializable-dən daha sürətli və daha effektivdir, çünki IPC üçün optimallaşdırılmışdır. Daha çox kod tələb edir.
// Parcelable nümunəsi
import android.os.Parcel;
import android.os.Parcelable;
public class MyParcelableObject implements Parcelable {
private String name;
private int age;
public MyParcelableObject(String name, int age) {
this.name = name;
this.age = age;
}
// Deserializasiya üçün konstruktor
protected MyParcelableObject(Parcel in) {
name = in.readString();
age = in.readInt();
}
// Parcel-dən nümunələr yaratmaq üçün Creator
public static final Creator<MyParcelableObject> CREATOR = new Creator<MyParcelableObject>() {
@Override
public MyParcelableObject createFromParcel(Parcel in) {
return new MyParcelableObject(in);
}
@Override
public MyParcelableObject[] newArray(int size) {
return new MyParcelableObject[size];
}
};
@Override
public int describeContents() {
return 0; // Əksər obyektlər üçün həmişə 0
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
// Getter və setterlər
}
Müqayisə:
| Xüsusiyyət | Serializable | Parcelable |
|---|---|---|
| İnterfeys | java.io.Serializable |
android.os.Parcelable |
| Performans | Daha yavaş | Daha sürətli |
| İstifadə asanlığı | Daha asan (daha az kod) | Daha çətin (daha çox kod) |
| İstifadə sahəsi | Ümumi Java | Android (IPC, Bundles, Intents) |
| Obyekt yaradılması | Daha çox müvəqqəti obyekt | Daha az müvəqqəti obyekt |
Parcelable Android tətbiqlərində komponentlər arasında məlumat ötürmək üçün üstünlük verilən üsuldur (məsələn, Intent və ya Bundle vasitəsilə).