第一步:首先写一个User类实现Parcelable接口。我们这里先列举User类常用类型int ,String ,boolean; ?...根据上面过程的介绍,Parcelable就写完了,基本都是自动生成的,接下来就可以直接在Intent中传输了,可以自己写两个Activity传输一下数据试一下,其中一个putExtra另一getParcelableExtra...如果实现Parcelable接口的对象中包含对象或者集合,那么其中的对象也要实现Parcelable接口 .,也就是我们的Author要实现Parcelable接口: ?
public class Book implements Parcelable { public int bookId; public String bookName; public...) { out.writeInt(bookId); out.writeString(bookName); } public static final Parcelable.Creator
) { //Parcelable类型 writeInt(VAL_PARCELABLE); writeParcelable((Parcelable) v,...//获取对应Parcelable的Creator Parcelable.Creator<?...); } 先来看 Parcelable 的 CREATOR 的获取方式: public final Parcelable.CreatorParcelable的Creator实例 HashMapParcelable.CreatorParcelable 实例。
parcelable = getIntent().getParcelableExtra(MainActivity.KEY); Person mPerson = (Person)parcelable...; // Parcelable -> Person Log.d(TAG, "parcelable=" + parcelable + "; mPerson=" + mPerson);...Log D/Parcelable( 487): MainActivity D/Parcelable( 487): onClick D/Parcelable( 487): mPerson=com.learn.Person...@40520b98 D/Parcelable( 487): writeToParcel(Parcel dest, int flags) D/Parcelable( 487): startActivity...D/Parcelable( 487): SubActivity D/Parcelable( 487): createFromParcel(Parcel source) D/Parcelable(
image.png Parcelable Parcelable类的概述在SDK中是这样的:这些类的接口可以将实例写入或从中还原 Parcel。...简单的说Parcelable是Android为我们提供的序列化的接口。 类似java的Serializable类。...package com.status.mattest; import android.os.Parcel; import android.os.Parcelable; public class Book...implements Parcelable { private String name; private int id; private String classify;
Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。...接口的定义如下: public interface Parcelable { //内容描述接口,基本不用管 public int describeContents(); //写入接口函数...,打包 public void writeToParcel(Parcel dest, int flags); //读取接口,目的是要从Parcel中构造一个实现了Parcelable的类的实例处理...同时在消息的接收方需要通过MyMessage实现的Parcelable接口,将MyMessage重新构造出来。...import android.os.Parcel; import android.os.Parcelable; public class MyMessage implements Parcelable
概述 生成实现了Parcelable接口的代码的插件 下载安装 1.在线安装 ?...输入 Android Parcelable code generator ,点击安装即可,安装之后 重启,会看到上图选中部分所示。...2.手动下载安装 https://github.com/mcharmas/android-parcelable-intellij-plugin 使用 在你的类中,按下alt + insert键弹出插入代码的上下文菜单...,会看到在下面有一个Parcelable,选择它之后,就会在你的类当中插入实现了Parcelable接口的代码了。...* @version 1.0 * @desc */ public class Product implements Parcelable { private int id; private
Serializable和Parcelable, 都可以用来做序列化,网上也有很多文章分析它们的优缺点,大部分的结论都是Serializable使用简单但是低效,Parcelable使用麻烦但是高效,...第三个问题:Android中Parcelable的序列化是怎么实现的?...先来看一下,上面的Person类实现Parcelable接口 public class Person implements Parcelable { public int age; public...运行结果:Serializable平均每次写1000个对象的耗时大约30ms,Parcelable平均每次耗时大约4ms。...总结一下: 数据本地持久化,推荐Serializable 界面传值 推荐Parcelable 小彩蛋: 通过上面分析,Parcelable我们可以自由决定哪些字段参与序列化,那么Serializable
在使用内存的时候,Parcelable 类比 Serializable 性能高,所以推荐使用 Parcelable 类。 (2)....而Parcelabel的实现,不仅需要实现Parcelabel接口,还需要在类中添加一个静态成员变量CREATOR,这个变量需要实现 Parcelable.Creator 接口,并实现读写的抽象方法。...='" + age + '\'' + '}'; } } 通过上述代码中,可知Serializable序列化 之需要实现Serializable接口即可,使用比较简单; **Parcelable...用法** public class User implements Parcelable { public int id; public String age; public String... CREATOR = new Parcelable.Creator() { @Override public User createFromParcel(Parcel
以上就是自己对Serializable的认识,下边来看看Parcelable相关的知识!!...Parcelable 我们先看一个使用Parcelable进行序列化的例子: public class Book implements Parcelable { public int bookId...接口来实现序列化操作,在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。...而Parcelable是Android中序列化方法,因为更适合于在Android平台上,它的缺点就是使用起来比较麻烦,但是它的效率很高,这是Android推荐的序列化方法,因为我们要首选Parcelable...Parcelable主要用于内存序列化上,通过Parcelable将对象序列化到存储设备中或者将对象序列化后通过网络传输也都是可以的,但是这个过程稍显复杂,因此在这两种情况下建议使用Serializable
中提供了Parcelable接口来实现序列化操作,Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如通过Intent在activity...间传输数据,而Parcelable的缺点就使用起来比较麻烦,下面给出一个Parcelable接口的实现案例: class User implements Parcelable { String...Parcelable是直接在内存中读写,我们知道内存的读写速度肯定优于硬盘读写速度,所以Parcelable序列化方式性能上要优于Serializable方式很多。...AndroidStudio中的快捷生成方式 (1)AndroidStudio快捷生成Parcelable代码 android studio 提供了自动实现Parcelable接口的方法的插件,相当实现,...我们只需要打开Setting,找到plugin插件,然后搜索Parcelable插件,最后找到android Parcelable code generator 安装即可。
我们再来使用Parcelable接口来传递,先定义一个类ParcelableGood ? 发送数据也很简单 ? 接收也同样类似 ?...因为Intent提供了putExtra方法直接传递Parcelable数组的重载,所以可以直接使用, ? 从Intent中取出Parcelable数组更简单 ? ...如果要使用Parcelable,GoodExtra同样要实现我们上面介绍的writeToParcel 和 CREATOR。 ...最后我们来做一个总结,上面已经介绍了在Android开发中Serializable和Parcelable的用法,我们推荐使用Parcelable,理由大致有3个:1.Parcelable是Android...Parcelable效率更高,Parcelable底层实现是内存的copy,速度很快,Serializable是IO操作,而且会用到反射,相对比较慢,国外有人测试过,Parcelable比Serializable
文章目录 一、创建 AIDL 文件 1、创建 AIDL 目录 2、创建 AIDL 文件 3、创建 Parcelable 类 4、AIDL 目录下声明 Parcelable 类 5、AIDL 中使用 Parcelable...类 创建 Parcelable 类 : package kim.hsl.aidl_demo; import android.os.Parcel; import android.os.Parcelable...; public class Student implements Parcelable { private String name; public Student(String...parcelable Student; 5、AIDL 中使用 Parcelable 类 在创建的 AIDL 接口中使用 Student 类 : ① 首先要导入 Student 类 , import kim.hsl.aidl_demo.Student...=null)) { reply.writeInt(1); _arg0.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE
Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable是通过...Parcelable差; Parcelable是以IBinder作为信息载体的。...在内存上的开销比较小,因此内存直接进行数据传递的时候,Android推荐使用Parcelable; 在读写数据的时候,Parcelable是在内存中直接进行读写,而Serializable是通过IO流的形式将数据写入到硬盘上...选择 Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如Activity间传输数据,而Serializable可将数据持久化方便保存...,所以在需要保存或网络传输数据时选择Serializable,因为Android不同版本Parcelable可能不同,所以不推荐使用Parcelable进行数据持久化。
在安卓开发中,我们在组件中传递数据时常常使用 Intent 传输数据时需要传递 Serializable 或者 Parcelable 的数据,比如 Intent.putExtra 方法: public...接口 Parcelable 是 Android 特有的序列化接口: public interface Parcelable { //writeToParcel() 方法中的参数,用于标识当前对象作为返回值返回...实现 Parcelable 接口的类必须有一个 CREATOR 类型的静态变量,下面是一个实例: public class ParcelableGroupBean implements Parcelable...而在运行时数据传递时建议使用 Parcelable,比如 Intent,Bundle 等,Android 底层做了优化处理,效率很高。...Thanks 《Android 开发艺术探索》 http://developer.android.com/reference/android/os/Parcelable.html
binder 和 socket 通信的区别有哪些 : binder 共享内存,Soket需要copy内存 Socket 远程,本地低速(zygote) Serializable 和 Parcelable...之间的区别: (io流,共享内存) Parcelable 序列化和反序列化的具体过程 Parcel.kt package zzw.com.testparcel public class Parcel
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Generator...----------------------------------------------------------------------------- Parcelable , 这个词大家应该不陌生吧...那么因为 Parcelable 有使用它的优势,我们又不能放弃,那该怎么办么? Android Studio 提供给了我们 一个插件用来简化 给一个类 实现 Parcelable 接口的流程。...,会出现如下选择框,选择Parcelable 即可 ?...然后我们就看到代码,是不是比我们手动写要快的许多 public class People implements Parcelable { private int id; private
Parcelable(Android 专用):除了Serializable之外,使用Parcelable也可以实现相同的效果, 不过不同于将对象进行序列化,Parcelable方式的实现原理是将一个完整的对象进行分解...区别: 在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelable类。...群友补充 @Noble_JIE 从出生来来说,Serializable 是java的方法,Parcelable 是android独有的序列化反序列化方法。...从用法上来说,Serializable 比 Parcelable 简单,所有类实现Serializable即可,Parcelable需要对对所有属性及成员变量进行Creator 。...从性能上来说,Parcelable 性能要高于Serializable。
是Java提供的接口,用来标识某一个类可以被序列化,用起来非常简单,只需要implement这个接口,提供get/set方法就可以 Parcelable Parcelable是Android为了序列化而专门设计的接口类...实现 Parcelable的demo像以下这样, public class Girl implements Parcelable { private int mAge; // 年龄...1 : 0)); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator<Girl...低 · 一般对于内存读写要求高的情况下用 Parcelable,程序间的数据传输也可以用 Parcelable · Serializable更适合在文件存储的场景。...因为 Parcelable可能会在不同Android版本间存在兼容问题,因此对于数据持久化存储的场景不建议用Parcelable
Parcelable接口之一即可。...Parcelable接口来实现序列化操作,Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如通过Intent在activity...间传输数据,而Parcelable的缺点就使用起来比较麻烦,下面给出一个Parcelable接口的实现案例,大家感受一下: public class User implements Parcelable...ok~,到此Parcelable接口的序列化实现基本介绍完。 那么在哪里会使用到Parcelable对象呢?...其实通过Intent传递复杂类型(如自定义引用类型数据)的数据时就需要使用Parcelable对象,如下是日常应用中Intent关于Parcelable对象的一些操作方法,引用类型必须实现Parcelable
领取专属 10元无门槛券
手把手带您无忧上云