当前位置: 首页 > 编程笔记 >

Android中可打包和可序列化之间的区别

闾丘山
2023-03-14
本文向大家介绍Android中可打包和可序列化之间的区别,包括了Android中可打包和可序列化之间的区别的使用技巧和注意事项,需要的朋友参考一下

本示例演示了Android中可打包和可序列化之间的区别

可序列化

可序列化是一个可标记的接口,或者我们可以将其称为空接口。它没有任何预先实现的方法。可序列化将对象转换为字节流。因此,用户可以在一个活动到另一个活动之间传递数据。可序列化的主要优点是创建和传递数据非常容易,但是与可打包相比,这是一个缓慢的过程。

一个可序列化的简单示例,如下所示–

import java.io.Serializable;
class serializableObject implements Serializable {
   String name;
   public serializableObject(String name) {
      this.name = name;
   }
   public String getName() {
      return name;
   }
}

可包裹

具有包裹功能比可序列化速度更快。Parcelable将把对象转换为字节流,并在两个活动之间传递数据。与序列化相比,编写可打包的代码有点复杂。在两个活动之间传递数据时,它不会创建更多临时对象。

一个简单的Parcel功能示例,如下所示–

import android.os.Parcel;
import android.os.Parcelable;
class parcleObject implements Parcelable {
   private String name;
   protected parcleObject(Parcel in) {
      this.name = in.readString();
   }
   public parcleObject(String name){
      this.name = name;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public static final Creator<parcleObject> CREATOR = new Creator<parcleObject>() {
      @Override
      public parcleObject createFromParcel(Parcel in) {
         return new parcleObject(in);
      }
      @Override
      public parcleObject[] newArray(int size) {
         return new parcleObject[size];
      }
   };
   @Override
   public int describeContents() {
      return 0;
   }
   @Override
   public void writeToParcel(Parcel dest, int flags) {
      dest.writeString(this.name);
   }
}
 类似资料:
  • 我希望在Android中将一个对象数组从一个活动传递到另一个活动。我知道实现这一点的最佳方法是让传递的对象实现或,如这里所解释的。 但是,如果我传递这些对象的数组,考虑到您现在传递的是实现这些接口的对象数组,而不是对象本身,这是否仍然有效?如果不是,我是否需要扩展一个类,例如并实现这些接口,然后传递那个“数组”对象?

  • 本文向大家介绍Java中的序列化和外部化之间的区别,包括了Java中的序列化和外部化之间的区别的使用技巧和注意事项,需要的朋友参考一下 序列化和外部化都是将对象转换为流字节并将字节流存储在数据库或内存中的过程。实现java.io.Serializable接口的类可以序列化。另一方面,根据应用程序的要求,外部化用于自定义序列化。外部化扩展了java.io.Serializable。  序号 键 序列

  • 本文向大家介绍python中可变和不可变之间的区别?,包括了python中可变和不可变之间的区别?的使用技巧和注意事项,需要的朋友参考一下 Python定义了对象的各种数据类型。这些对象存储在内存中,对象的可变性取决于类型,例如列表和字典是可变的,这意味着我们可以更改其内容而无需更改其标识。其他对象,例如整数,浮点数,字符串和元组,都无法更改为索引分配的值。 List是可变的:List就像数组一样

  • 问题内容: 我正在对Memento模式进行一些研究,而我通常对行为模式还是陌生的,而随着我的研究,我变得非常困惑。我一直感到困惑的主要事情之一是Memento模式和序列化之间的差异。 据我所知,两者都可以用来存储对象,并在以后将它们带回去,但是我无法就它们之间的主要区别找到明确的答案,也许我错过了一些研究成果但我想知道是否有人可以阐明两者之间的区别。 谢谢 问题答案: 通常,Memento模式用于

  • 根据 SQL 标准,可重复读取应防止模糊读取和脏读,而可序列化还应防止幻像读取。 根据MySQL文档: 默认情况下,InnoDB以可重复读取事务隔离级别运行。在这种情况下,InnoDB使用下一键锁进行搜索和索引扫描,这可以防止幻像行(参见14.2.2.5的“使用下一键锁避免幻像问题”一节)。 那么,如果可重复读取也可以防止幻像读取,那么序列化可以提供什么回报呢? Serializable是否可以防

  • 本文向大家介绍Hibernate中序列和身份之间的区别,包括了Hibernate中序列和身份之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hibernate或JPA支持4种不同类型的主键生成器。这些生成器用于在数据库中插入行时生成主键。以下是主键生成器  - GenerationType.AUTO GenerationType。身份 GenerationType.SEQUENCE  Gene