Sobes.tech
Junior

O que é serialização?

sobes.tech IA

Resposta da IA

A transformação de um objeto ou estrutura de dados para um formato que possa ser facilmente armazenado (por exemplo, em um arquivo, memória, base de dados) ou transmitido pela rede. A desserialização é o processo inverso.

No Android, a serialização é frequentemente usada para:

  • Transmitir dados entre uma Activity ou Fragment usando Intent ou Bundle.
  • Guardar o estado das Views (por exemplo, ao rotacionar a tela).
  • Fazer cache de dados.
  • Trocar dados com servidores remotos (JSON, XML).

Os principais mecanismos de serialização no Android:

  • Serializable: Fácil de usar, mas lento e cria muitos objetos temporários. Faz parte do Java padrão.
  • Parcelable: Mecanismo mais rápido e eficiente, específico do Android. Requer mais código boilerplate para implementação.
// Exemplo Parcelable
class MyData implements Parcelable {
    private int value;
    private String text;

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

    // Implementação 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);
    }
}