为什么Android为序列化对象提供了两个接口?序列化对象与Android Binder和AIDL文件interopt ?


当前回答

如果你在android studio中使用paracelable插件,parcelable的实现可以更快。搜索Android Parcelable代码生成器

其他回答

你可以在intent中使用serializable对象,但是在使serialize成为Parcelable对象的时候,它会给出一个严重的异常,比如NotSerializableException。不建议使用serializable和Parcelable。所以最好是扩展Parcelable与你想要使用的对象捆绑和意图。由于这个Parcelable是android特定的,所以它没有任何副作用。 :)

Serializable接口可以像Parcelable接口一样使用,从而获得(不是很多)更好的性能。 只需覆盖这两个方法来处理手动编组和解组过程:

private void writeObject(java.io.ObjectOutputStream out)
    throws IOException
private void readObject(java.io.ObjectInputStream in)
    throws IOException, ClassNotFoundException

不过,在我看来,在开发原生Android时,使用Android api是正确的选择。

看到的:

https://bitbucket.org/afrishman/androidserializationtest/ https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

1. 可序列化的

@see http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

什么接口?

是标准的Java接口吗

速度

比Parcelable慢

2. Parcelable

@see http://developer.android.com/reference/android/os/Parcelable.html

什么接口?

android。操作系统接口 这意味着谷歌开发的Parcelable在android上有更好的性能

速度

更快(因为它针对android开发进行了优化)

综上所述

要知道Serializable是一个标准的Java接口,Parcelable是Android开发的接口

Parcelable将对象转换为字节流,以便在Android的进程之间传递对象。

序列化将POJO转换为字符串(JSON字符串),并用于跨平台传输对象信息。

如果你在android studio中使用paracelable插件,parcelable的实现可以更快。搜索Android Parcelable代码生成器