Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > Android Parcelable与Serializable

Android序列化接口Parcelable与Serializable接口对比

作者:小尹编码中...

我们使用 Intent 传递数据的时候,putExtra() 所支持的数据类型事有限的,当需要传递自定义对象的时候就需要序列化。Serializable更简单但是会把整个对象进行序列化因此效率比Parcelable低一些

Parcelable

优点:

缺点:

 public class MyParcelable implements Parcelable {
 *     private int mData;//参数
 *     public int describeContents() {//类描述,一般不管他
 *         return 0;
 *     }
 *     public void writeToParcel(Parcel out, int flags) {//序列化 :out写入参数,要注明参数类型 flag一般默认是0,1代表对象需要返回,不回收
 *         out.writeInt(mData);
 *     }
 *     public static final Parcelable.Creator<MyParcelable> CREATOR//反序列化操作
 *             = new Parcelable.Creator<MyParcelable>() {
 *         public MyParcelable createFromParcel(Parcel in) {
 *             return new MyParcelable(in);
 *         }
 *         public MyParcelable[] newArray(int size) {
 *             return new MyParcelable[size];
 *         }
 *     };
 *     private MyParcelable(Parcel in) {
 *         mData = in.readInt();
 *     }
 * }

google官方也是很贴心呀,直接把怎么用放在源码的注释里了

Serializable

优点:

缺点:

package java.io;
// Android-added: Notes about serialVersionUID, using serialization judiciously, JSON.
public interface Serializable {
}

Serializable 是一个空接口,用来标识当前类可以被 ObjectOutputStream序列化,以及被ObjectInputStream反序列化

Parcelable与Serializable的性能比较

总结:

个人小建议:

尽管Parcelable实现起来比较复杂,但是如果我们想要成为一名优秀的Android软件工程师,那么我们就需要勤快一些去实现Parcelable,而不是偷懒与实现Serializable,当然实现Serializable也可以

到此这篇关于Android序列化接口Parcelable与Serializable接口对比的文章就介绍到这了,更多相关Android Parcelable与Serializable内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文