Sobes.tech
Junior

Qu'est-ce que la sérialisation?

sobes.tech IA

Réponse de l'IA

La transformation d’un objet ou d’une structure de données en un format facilement stockable (par exemple, dans un fichier, en mémoire, dans une base de données) ou transmissible sur un réseau. La désérialisation est le processus inverse.

Dans Android, la sérialisation est souvent utilisée pour :

  • Transmettre des données entre une Activity ou un Fragment à l’aide de Intent ou Bundle.
  • Enregistrer l’état des Views (par exemple, lors de la rotation de l’écran).
  • Mettre en cache des données.
  • Échanger des données avec des serveurs distants (JSON, XML).

Les principaux mécanismes de sérialisation dans Android :

  • Serializable : Facile à utiliser, mais lent et crée beaucoup d’objets temporaires. Fait partie de Java standard.
  • Parcelable : Mécanisme plus rapide et efficace, spécifique à Android. Nécessite plus de code boilerplate pour l’implémentation.
// Exemple Parcelable
class MyData implements Parcelable {
    private int value;
    private String text;

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

    // Implémentation Parcelable
    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);
    }
}