美文网首页分享资料Android技术知识Android开发
序列化Serializable和Parcelable的区别详解(

序列化Serializable和Parcelable的区别详解(

作者: ifjgm | 来源:发表于2016-10-10 20:13 被阅读190次

    什么是序列化,为什么要进行序列化

    答:对象要进行传输(如:activity 与activity间 ,网络间 进程间等等)、存储到本地就必须进行序列化 。

    这种可传输的状态就是序列化。

    怎么序列化??两种

    1.Serializable (java 自带)

    方法:对象继承 Serializable类即可实现序列化,就是这么简单,也是它最吸引我们的地方

    2.Parcelable(Android专用):Parcelable方式的实现原理是将一个完整的对象进行分解,用起来比较麻烦,但我们有工具,还是很简单的具体如下

    方法:1.继承 Parcelable

              2、复写两个方法,分别是describeContents和writeToParcel

              3、实例化静态内部对象CREATOR,实现接口Parcelable.Creator 。

    说不如做,直接上图上代码

    1-1

    如何选择

    选择序列化方法的原则

    1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。

    2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

    3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点,但此时还是建议使用Serializable 。

    4)android上应该尽量采用Parcelable,效率至上,效率远高于Serializable

    综上所述:对于我们Android开发者来说,最好的还是用Parcelable序列化,就是写起来挺费事,没事我们是程序员自然有高端的办法

    Androidstudio 插件一键生成代码,实现Parcelable就是这么简单,图

    setting  -- pugins --输入par即可出来该插件。安装后重启androidstudio

    ok ,从此序列化就不担心了!

    相关文章

      网友评论

        本文标题:序列化Serializable和Parcelable的区别详解(

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