Serializable
is to convert the runtime object state to binary, and then save it to stream, memory or network to transfer it to other ends.
Parcelable
is faster than Serializable
interface.Parcelable
interface takes more time to implement.Serializable
interface is easier to implement.Serializable
creates a lot of temporary objects and causes garbage collection.Parcelable
array can be passed via Intent
.import java.io.Serializable;
class serializableObject implements Serializable {
String name;
public serializableObject(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
import android.os.Parcel;
import android.os.Parcelable;
class parcleObject implements Parcelable {
private String name;
protected parcleObject(Parcel in) {
this.name = in.readString();
}
public parcleObject(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static final Creator<parcleObject> CREATOR = new Creator<parcleObject>() {
@Override
public parcleObject createFromParcel(Parcel in) {
return new parcleObject(in);
}
@Override
public parcleObject[] newArray(int size) {
return new parcleObject[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.name);
}
}
createFromParcel(Parcel in)
Create original object from parcelable object.
newArray(int size)
Create an array of original object with specific length.
describeContents()
Return description contents.
writeToParcel(Parcel dest, int flags)
Write current object to parcel structure.