美文网首页
Android序列化

Android序列化

作者: Zcurry | 来源:发表于2019-03-12 17:43 被阅读0次

    提问:
    什么是序列化?
    为什么要序列化?
    为什么要使用Parcelable?
    Parcelable与Serializable的区别?

    1. 序列化 :

    序列化是一个过程,是将对象状态转成可以存储或者传输的过程。

    2. Android中对象序列化的目的:
    • 用于进程之间的对象传递;
    • 用于网络之间的对象传递;
    • 用于存储,实现数据的持久化
    3. 关于Parcelable

    Parcelable:
    Interface for classes whose instances can be written to and restored from a Parcel.
    可以在Parcel中写入实例并从其中恢复的类的接口。


    image.png

    根据官方文档的说明,我们可以知道

    • IBinder是传输的载体;
    • google将其设计为高性能的IPC传输
    • 不适合将任何Parcel数据放入持久存储中
    4. Parcelable与Serializable
    • Android中推荐使用Parcelable,在内存占用(Parcelable开销小)以及性能方面优于 Serializable;Parcelable在内存中直接进行读写,而Serializable是通过IO流的形式将数据读写入在硬盘上,内存读写速度>硬盘读写速度,因此更适用于Android中Activity传输数据;
    • Serializable序列化时会产生大量的临时变量,引起频繁的GC;
    • 上面已经提到,Parcelable不适合保证数据的持续性,因此当要存储时还是选择Serializable。

    参考:https://developer.android.com/reference/android/os/Parcel.html

    相关文章

      网友评论

          本文标题:Android序列化

          本文链接:https://www.haomeiwen.com/subject/klfgpqtx.html