Android开发中经常需要用到序列化,系统提供了两个接口用来实现, · Parcelable · Serializable
今天说下这两个接口在实现上有什么区别
Serializable是Java提供的接口,用来标识某一个类可以被序列化,用起来非常简单,只需要implement这个接口,提供get/set方法就可以
Parcelable是Android为了序列化而专门设计的接口类,效率比 Serializable更高。实现 Parcelable的demo像以下这样,
public class Girl implements Parcelable {
private int mAge; // 年龄
private boolean mSexy; // 是否性感
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mAge);
dest.writeByte((byte) (mSexy ? 1 : 0));
}
public static final Parcelable.Creator<Girl> CREATOR = new Parcelable.Creator<Girl>() {
public Girl createFromParcel(Parcel in) {
Girl girl = new Girl();
girl.mAge = in.readInt();
girl.mSexy = in.readByte() != 0;
return girl;
}
public Girl[] newArray(int size) {
return new Girl[size];
}
};
@Override
public int describeContents() {
return 0;
}
}
通常有几个步骤, · 实现 Parcelable接口 · 实现 writeToParcel 方法 · 创建 CREATEOR,并实现 createFromParcel 和 newArray
好了,说完这两个接口,来总结下这两个接口的区别 · Serializable 是Java提供的接口,本身序列化效率比 Android 的 Parcelable低 · 一般对于内存读写要求高的情况下用 Parcelable,程序间的数据传输也可以用 Parcelable · Serializable更适合在文件存储的场景。因为 Parcelable可能会在不同Android版本间存在兼容问题,因此对于数据持久化存储的场景不建议用Parcelable
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有