Android捆绑与Java普通对象(POJO)-序列化/反序列化性能

Android捆绑与Java普通对象(POJO)-序列化/反序列化性能,java,android,performance,serialization,deserialization,Java,Android,Performance,Serialization,Deserialization,我正在将一些数据从一个活动传递到另一个活动。我有以下两种解决方案: 使用捆绑 Bundle args = new Bundle(); args.put ("key1", serializable_object1); args.put ("key2", serializable_object2); args.put ("key3", serializable_object3); Intent intent = new Intent(this, MyActivity.class); int

我正在将一些数据从一个活动传递到另一个活动。我有以下两种解决方案:

  • 使用捆绑

    Bundle args = new Bundle();
    
    args.put ("key1",  serializable_object1);
    args.put ("key2",  serializable_object2);
    args.put ("key3",  serializable_object3);
    
    Intent intent = new Intent(this, MyActivity.class);
    intent.putExtra ( "args", args );
    
  • 使用Java普通对象

    public class FragModel implements Serializable {
    
        public Serializable key1;
        public Serializable key2;
        public Serializable key3;
    }
    
    Intent intent = new Intent(this, MyActivity.class);
    FragModel model = new FragModel();
    
    model.key1 = serializable_object1;
    model.key2 = serializable_object2;
    model.key3 = serializable_object3;
    
    // ....
    intent.putExtra ( "args",  model );
    
  • 我的问题是哪种解决方案对性能更有利?序列化/反序列化更好吗


    有人有什么想法吗?谢谢

    Bundle是android平台提供的默认通信和数据传输方法。您也可以在android中使用serialize,但不推荐使用。尝试可打包作为序列化的替代方法。 这是来自android的:

    警告:此接口限制了其实现类将来的更改方式。通过实现Serializable,您可以将灵活的内存中实现细节作为严格的二进制表示公开。当更改的类可序列化时,简单的代码更改(如重命名私有字段)是不安全的


    至于性能,我只能说serialize的性能最差。我不知道Parcelable和Bundle的性能有什么不同。

    谢谢!。我想如果FragModel实现Bundle。FragModel将具有比该捆绑包更好的性能。