Middle
Android'da Serializable va Parcelable o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Asosiy farq ishlash va amalga oshirish usulida.
-
Serializable:- Java SE ning standart interfeysi.
- Implementatsiyasi osonroq (faqat interfeysni amalga oshirish kifoya).
- Java Reflection API yordamida serializatsiya qiladi, bu sekinroq va ko'proq xotira talab qiladi.
- Kichik ob'ektlar yoki serializatsiya ishlash tezligi muhim bo'lmagan hollarda mos keladi.
-
Parcelable:- Android SDK uchun maxsus interfeys.
- Serializatsiya/deserializatsiya jarayonini aniq tavsiflashni talab qiladi.
- Reflectionga tayanmaydi, shuning uchun ancha tez va xotira samaraliroq.
- Androidda ob'ektlarni komponentlar o'rtasida uzatish (Activity, Service, BroadcastReceiver) va holatni saqlash uchun eng yaxshi tanlov.
Parcelable ni amalga oshirish uchun:
Parcelableinterfeysini amalga oshiring.- Ma'lumotlarni
Parcelga yozish uchunwriteToParcel()metodini amalga oshiring. describeContents()metodini amalga oshiring.CREATORnomli statik obyektni yarating, buParcelable.Creatorning amalga oshirilishi.
import android.os.Parcel;
import android.os.Parcelable;
public class MyParcelableObject implements Parcelable {
private int value;
private String name;
public MyParcelableObject(int value, String name) {
this.value = value;
this.name = name;
}
protected MyParcelableObject(Parcel in) {
value = in.readInt();
name = in.readString();
}
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;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(value);
dest.writeString(name);
}
}
Taqqoslash jadvali:
| Xususiyat | Serializable | Parcelable |
|---|---|---|
| Kutubxona | java.io |
android.os |
| Ishlash tezligi | Past (Reflection ishlatadi) | Yuqori |
| Xotira samaradorligi | Past | Yuqori |
| Amalga oshirish | Oddiy | Murakkab |
| Foydalanish | Java umumiy, kichik ma'lumotlar | Android, komponentlar o'rtasida ma'lumot uzatish |