gpt4 book ai didi

android - android中使用的Parcelable和Serialization有什么区别

转载 作者:IT老高 更新时间:2023-10-28 21:46:19 29 4
gpt4 key购买 nike

我想知道确切的,

  1. 我应该使用 parcelable 还是 serialization 技术用于将数据从一个 Activity 发送到另一个 Activity ?
  2. 是否必须使用其中之一将数据从一个发送到另一个?
  3. 我应该什么时候使用它们?
  4. 以及它们与性能之间的确切区别他们都在java方面。

提前致谢。


 public class GetSetClass implements Serializable {
private int dt = 10;

/** pass any object, drwabale */
public int getDt() {
return dt;
}

public void setDt(int dt) {
this.dt = dt;
}
}

最佳答案

这些概念与进程间通信 (IPC) 有关。

在两个应用程序之间发送数据时,我们必须确保两个应用程序都应该理解正在发送的数据的格式。

特别是当您在两个应用程序之间发送非原始数据类型值(如类和对象)时,我们必须将它们转换为操作系统可理解的格式。操作系统只理解原始类型(整数、字符等)。转换的原因是我们必须通过 OS 通信 channel 来传输数据。

将非原始类型转换为原始类型并通过某些通信 channel 发送到其他应用程序的过程称为序列化。逆过程称为反序列化。

在 Java 中,IPC 严重依赖于 Serializable 进行序列化。但是序列化是通过牢记桌面应用程序来设计的。当您在移动应用中进行 IPC 时,我们必须确保 IPC 的过程不会太繁重。

简单来说,序列化对于 IPC 来说是一个沉重的概念。因此代替序列化,Android 选择了 Binder 来实现轻量级的进程间通信。 Binder 在内部很大程度上依赖于包裹,来做 IPC。包裹是轻量级的可序列化对象。最好使用包裹将对象编码为字节流。

注意:Binder IPC 很大程度上依赖于共享内存的概念,以确保在应用程序之间共享时没有太多的数据重复。

关于android - android中使用的Parcelable和Serialization有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077907/

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