Android中Parcelable序列化总结
在使用Parcelable对android中数据的序列化操作还是比较有用的,有人做过通过对比Serializable和Parcelable在android中序列化操作对象的速度比对,大概Parcelable相比Serializable要快10倍左右、、、给一个连接可以瞅瞅他们序列化的区别http://greenrobot.me/devpost/android-parcelable-serializable/
下面来总结一下我们基本数据类型、对象、数组、list等做Parcelable的方法,主要是做个总结直接看下code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
package com.suning.mobile.paysdk.pay;import java.util.ArrayList;import android.os.Parcel;import android.os.Parcelable;import com.yaya.test.OrderInfoBean;/** * * 〈一句话功能简述〉<br> * 〈功能详细描述〉 数据类型序列化 */public class ParcelableType implements Parcelable { /** int 类型 */ int age; /** String 类型 */ String name; /** boolean 注意该boolean的get和set方法 **/ boolean isGood; /** boolean 类型 **/ boolean complete; /** 数组 **/ private String[] ids; /** 对象 [内部已经序列化] **/ private OrderInfoBean bean; /** list **/ private ArrayList<orderinfobean> listBeans; /** * 默认构造方法 */ public ParcelableType() { // TODO Auto-generated constructor stub } public ParcelableType(Parcel in) { readFromParcel(in); } /*** * 默认实现 */ @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { /** int 写入 **/ dest.writeInt(age); /** string 写入 **/ dest.writeString(name); /** boolean 写入 **/ dest.writeInt(isGood ? 1 : 0); /** boolean 写入 **/ dest.writeInt(complete ? 1 : 0); /** 数组 写入 **/ if (ids != null) { dest.writeInt(ids.length); } else { dest.writeInt(0); } dest.writeStringArray(ids); /** 对象 写入 **/ dest.writeParcelable(bean, flags); /** list 写入 **/ dest.writeList(listBeans); } @SuppressWarnings("unchecked") private void readFromParcel(Parcel in) { /** int 读出 */ age = in.readInt(); /** stirng 读出 */ name = in.readString(); /** boolean 读出 */ isGood = (in.readInt() == 1) ? true : false; /** boolean 读出 */ complete = (in.readInt() == 1) ? true : false; /** 数组 读出 */ int length = in.readInt(); ids = new String[length]; in.readStringArray(ids); /** 对象 读出 */ bean = in.readParcelable(OrderInfoBean.class.getClassLoader()); /** list 读出 */ listBeans = in.readArrayList(OrderInfoBean.class.getClassLoader()); } public static final Parcelable.Creator<parcelabletype> CREATOR = new Parcelable.Creator<parcelabletype>() { public ParcelableType createFromParcel(Parcel in) { return new ParcelableType(in); } public ParcelableType[] newArray(int size) { return new ParcelableType[size]; } }; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } /** * * 功能描述: <br> * 〈功能详细描述〉 fastJson解析时需要格式 */ public boolean isIsGood() { return isGood; } public void setIsGood(boolean isGood) { this.isGood = isGood; } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } public String[] getIds() { return ids; } public void setIds(String[] ids) { this.ids = ids; } public OrderInfoBean getBean() { return bean; } public void setBean(OrderInfoBean bean) { this.bean = bean; } public ArrayList<orderinfobean> getListBeans() { return listBeans; } public void setListBeans(ArrayList<orderinfobean> listBeans) { this.listBeans = listBeans; }} |
Android中Parcelable序列化总结的更多相关文章
- Android中Parcelable接口
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- (转)Android中Parcelable接口用法
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- Android中Parcelable和Serializable接口用法
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- Android中Parcelable与Serializable接口用法
转自: Android中Parcelable接口用法 1. Parcelable接口 Interface for classes whose instances can be written to a ...
- Android中Parcelable接口的使用
在做开发的过程中,序列化是非常常见的.比如要将对象保存本地磁盘或者在网络上传输等.实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable. Serializab ...
- Android 使用Parcelable序列化对象
转:http://ipjmc.iteye.com/blog/1314145 Android序列化对象主要有两种方法,实现Serializable接口.或者实现Parcelable接口.实现 ...
- Android中Parcelable的使用
转载请标明出处 :https://www.cnblogs.com/tangZH/p/10998065.html Parcelable与Serializable Serializable是Java为我 ...
- Android中Parcelable的原理和使用方法
Parcelable的简单介绍 介绍Parcelable不得不先提一下Serializable接口,Serializable是Java为我们提供的一个标准化的序列化接口,那什么是序列化呢? 进行And ...
- Android中Parcelable接口用法
from: http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html Interface for classes wh ...
随机推荐
- use utf8
[root@wx03 0724]# cat a2.pl use Encode; my $a=<STDIN>; my $b=encode_utf8('微信'); print "\$ ...
- poj 2363 Blocks(暴力)
题目链接:http://poj.org/problem?id=2363 思路分析:由于数据较小,采用暴力搜索法.假设对于矩形边长 1 <= a <= b <= c <= N; ...
- WebLogic(12C)——Server
上篇博客介绍了Weblogic的安装.Domain的创建,以及怎样进入管理控制台. WebLogic Server安装教程 1.Server(server)概念 2,创建Server(server) ...
- Unity Notes调制粒子系统的颗粒的最大数目
Unity该粒子系统是很容易使用.这样的问题是在实际的过程中遇到的:以控制的粒子系统组件的动态需要可产生颗粒的最大数目. 看doc他说,有maxParticles控制.却没有这个开放的參数.仅仅能通过 ...
- codeblock快捷键
一款开源的C/C++ IDE(集成开发环境),基于wxWidgets GUI体系,跨平台支持. 从别处粘贴的,方便以后看,啦啦啦…… 编辑器 快捷键 功能 Ctrl+Z 恢复上一次操作 Ctrl+Sh ...
- PHP面向对象基础实例
<?phpclass marine{ public $blood = 50; //剩余的血 public $kills = 0; //杀敌数量 static $all_num = 0;//兵的数 ...
- 我的Python成长之路---第三天---Python基础(12)---2016年1月16日(雾霾)
四.函数 日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现.在编程的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代 ...
- Struts 2 OGNL
1.什么是OGNL? 2.Struts 2 OGNL 表达式 ====================== 华丽丽的分割线 ====================== 1.什么是OG ...
- 基于 JVMTI 实现 Java 线程的监控(转)
随着多核 CPU 的日益普及,越来越多的 Java 应用程序使用多线程并行计算来充分发挥整个系统的性能.多线程的使用也给应用程序开发人员带来了巨大的挑战,不正确地使用多线程可能造成线程死锁或资源竞争, ...
- oschina iOS代码库
iOS代码库 34Activity 54下拉刷新(pull-to-refresh) 143菜单 (Menu) 20位置信息(GPS/Location) 24iOS 表单 74提醒 (Notificat ...