Android使用Parcelable序列化复杂数据结构

Android序列化方案Parcelable,相比Serializable更快,效率更高,占用内存更少。

Boolean类型

//write
dest.writeByte((byte) (isDefault ? 1: 0));

//read
isDefault = source.readByte() != 0;

List类型

//write
dest.writeList(list);

//read
list = source.readArrayList(String.class.getClassLoader());
list = source.readArrayList(Integer.class.getClassLoader());
list = source.readArrayList(MyEntity.class.getClassLoader());

Map类型

//write
dest.writeMap(map);

//read
map = source.readHashMap(HashMap.class.getClassLoader());

Array数组

//write
if (array != null) {
    dest.writeInt(array.length);
} else {
    dest.writeInt(0);
}
dest.writeStringArray(array);

//read
int length = source.readInt();
array = new String[length];
source.readStringArray(array);

实体类

//如果实体类实现Serializable接口
//write
dest.writeSerializable(entity);
//read
source.readSerializable();

//如果实体类实现Parcelable接口
//write
dest.writeParcelable(entity, flags);
//read
source.readParcelable(MyEntity.class.getClassLoader());

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/11/android-use-parcelable-to-serialize-complex-data-structures/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android使用Parcelable序列化复杂数据结构
Android序列化方案Parcelable,相比Serializable更快,效率更高,占用内存更少。 Boolean类型 //write dest.writeByte((byte) (isDefault ? 1: 0)); //read ……
<<上一篇
下一篇>>
文章目录
关闭
目 录