Androidда объекттердин сериализациясы жана парсинг эмне?
sobes.tech AI
AIден жооп
Сериализация — бул объектти байт агымына айландыру процесси, сактоо (мисалы, файлга же базада) же өткөрүү (мисалы, тармак аркылуу).
Парсинг (же десериализация) — тескерисинче процесс: байт агымынан объектти калыбына келтирүү.
Androidдо бул максаттар үчүн көбүнесе Serializable же Parcelable колдонулат.
Serializable (стандарт Java интерфейси): колдонууга оңой (тек интерфейсти ишке ашыруу керек), бирок Parcelableге караганда жайыраак жана көп убактылуу объекттер түзөт.
// Serializable мисал
import java.io.Serializable;
public class MySerializableObject implements Serializable {
private static final long serialVersionUID = 1L; // сунушталат көрсөтүү
private String name;
private int age;
public MySerializableObject(String name, int age) {
this.name = name;
this.age = age;
}
// Getter жана Setter
}
Parcelable (Android-специфик интерфейс): Serializableге караганда тезирек жана эффективдүү, анткени IPC (ара-өндүрүштүк байланыш) үчүн оптимизацияланган. Реализациясы көбүрөөк кодду талап кылат.
// Parcelable мисал
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;
}
// Десериализация үчүн конструктор
protected MyParcelableObject(Parcel in) {
name = in.readString();
age = in.readInt();
}
// 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; // көбүнесе 0
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
// Getter жана Setter
}
Салыштыруу:
| Өзгөчөлүк | Serializable | Parcelable |
|---|---|---|
| Интерфейс | java.io.Serializable |
android.os.Parcelable |
| Аткаруу | Асыңкы, жайыраак | Жылдамыраак |
| Колдонуу оңой | Оңой (аз код) | Кыйын (коп код) |
| Колдонуу | Жалпы Java | Android (IPC, Bundles, Intents) |
| Объект түзүү | Көбүрөөк убактылуу объекттер | Аз убактылуу объекттер |
Parcelable Android тиркемесинин компоненттери арасында маалымат өткөрүү үчүн артыкчылыктуу.