转 [android] Serializable 和 Parcelable 区别
android 中 自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。

一 序列化原因:

1.永久性保存对象,保存对象的字节序列到本地文件中;
2.通过序列化对象在网络中传递对象;
3.通过序列化在进程间传递对象。 

二 至于选取哪种可参考下面的原则:

1.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelable类。
2.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
3.Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点, 也不提倡用,但在这种情况下,还是建议你用Serializable 。


实现:
1 Serializable 的实现,只需要继承  implements Serializable 即可。这只是给对象打了一个标记,系统会自动将其序列化。

2 Parcelabel 的实现,需要在类中添加一个静态成员变量 CREATOR,这个变量需要继承 Parcelable.Creator 接口。
public   class  MyParcelable  implements  Parcelable {
     
private   int  mData;

     
public   int  describeContents() {
         
return   0 ;
     }

     
public   void  writeToParcel(Parcel out,  int  flags) {
         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();
     }
 }

更多相关文章

  1. Android(安卓)Parcelable接口
  2. WebRTC 的 Android(安卓)2 Android(安卓)实现
  3. Android(安卓)SeekBar的使用,进度条的另一种实现方式
  4. 在Android上实现HttpServer的示例代码
  5. Android(安卓)Studio 友盟api实现apk多渠道打包
  6. Android操作HTTP实现与服务器通信
  7. Android实现 图表 绘制和展示
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. 类和 Json对象

随机推荐

  1. android源码2.3.7开发环境与编译实战(ubu
  2. android(6) 扇形菜单实现
  3. fragment保存页面不销毁
  4. 基于第三方开发Android锁屏
  5. 错误”. lang。当使用带有ViewPager的选
  6. Android输入法框的梳理
  7. 做自己的Android ROM,屏蔽对framework中的
  8. 检查ArrayList是否只包含null值的方法。
  9. cocos2d-x避免手动修改android.mk文件来
  10. android 模拟键盘鼠标事件(adb shell)