gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:41:26 26 4
gpt4 key购买 nike

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

  1. 使用 bundle

    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 );
  2. 使用 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 中使用序列化,但不推荐。尝试用 Parceable 作为序列化的替代方案。这是取自android developer site :

Warning: this interface limits how its implementing classes can change in the future. By implementing Serializable you expose your flexible in-memory implementation details as a rigid binary representation. Simple code changes--like renaming private fields--are not safe when the changed class is serializable.

说到性能,我只能说serialize性能最差。不知道Parceable和Bundle在性能上有什么区别。

关于java - Android Bundle 与 Java 普通对象 (POJO) - 序列化/反序列化性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25064203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com