参考博文 http://blog.csdn.net/yangzl2008/article/details/7593226 由于项目需要,Activity之间要传递一个特别复杂的数据结构对象,由于以前序列化直接是用Serializable,但是Serializable无法传递复杂的数据结构,查看Bundle的方法,知道了Parcelable Parcelable的使用看起来挺复杂,其实也挺简单,就是使用writeToParcel(Parcel dest,int flags)方法将自己类中的属性写入…
import java.io.Serializable; import java.text.DecimalFormat; import android.os.Parcel; import android.os.Parcelable; /** * 代金券/团购实体类 * @author huqiang * */ public class CouponEntity implements Parcelable{ /** * shop_id */ public String shop_id ; /**…
一.android序列化简介 我们已经知道在Android使用Intent/Bindler进行IPC传输数据时,需要将对象进行序列化. JAVA原本已经提供了Serializable接口来实现序列化,使用起来非常简单,主要用于对象持久化以及对象的网络传输.Serializable开销比较大,因为序列化和反序列化的过程需要大量的I/O操作. Android提供了Parcelable对象序列化操作是内存序列化,主要用于Intent/Bindler的IPC数据传输. 二.Parcelable序列化使用…
在使用Parcelable对android中数据的序列化操作还是比较有用的,有人做过通过对比Serializable和Parcelable在android中序列化操作对象的速度比对,大概Parcelable相比Serializable要快10倍左右...给一个连接可以瞅瞅他们序列化的区别http://greenrobot.me/devpost/android-parcelable-serializable/ 下面来总结一下我们基本数据类型.对象.数组.list等做Parcelable的方法,主要…
学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.Parcelable的工作原理 6.相关实例 1.序列化的目的 (1).永久的保存对象数据(将对象数据保存在文件当中,或者是磁盘中 (2).通过序列化操作将对象数据在网络上进行传输(由于网络传输是以字节流的方式对数据进行传输的.因此序列化的目的是将对象数据转换成字节流的形式) (3).将对象数据在进程…
一.引言 数据的序列化在Android开发中占据着重要的地位,无论是在进程间通信.本地数据存储又或者是网络数据传输都离不开序列化的支持.而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影响. 从广义上讲,数据序列化就是将数据结构或者是对象转换成我们可以存储或者传输的数据格式的一个过程,在序列化的过程中,数据结构或者对象将其状态信息写入到临时或者持久性的存储区中,而在对应的反序列化过程中,则可以说是生成的数据被还原成数据结构或对象的过程. 这样来说,数据序列化相当于是将我们原先的对象序列…
转:http://ipjmc.iteye.com/blog/1314145       Android序列化对象主要有两种方法,实现Serializable接口.或者实现Parcelable接口.实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以用在IPC中.实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种…
http://my.oschina.net/zhoulc/blog/172163 parcel定义介绍: android提供了一种新的类型:parcel(英文解释:包裹,小包),本类用来封装数据的容器,封装后的数据可以通过Intent或IPC传递,除了基本类型外,只有实现了Parcelable接口的类才能放入parcel中. parcel一般都用在Binder通信,通过read和write方法进行客户端与服务端的数据传递(通信).        比如:frameworks层服务端与hardwar…
1.序列化的目的 (1)永久的保存对象数据(将对象数据保存到文件或磁盘中): (2)通过序列化操作将对象数据在网络上进行传输(由于网络传输是以字节流的方式对数据进行传输的,因此序列化的目的是将对象数据转化成字节流的形式): (3)将对象数据在进程之间进行传递(Activity之间传递对象数据时,需要在当前的Activity中对对象数据进行序列化操作,在另一个Activity中需要进行反序列化操作将对象数据取出): (4)Android中,使用Intent在Activity之间传递数据的时候,基本…
本文主要介绍Parcelable和Serializable的作用.效率.区别及选择,关于Serializable的介绍见Java 序列化的高级认识. 1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个 程序间的.而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程 序间(AIDL)高效的传输数据而设计,这些数据仅在内存…
最近在开发中需要用到图片bitmap的序列化并进行传递,发现bitmap是没有序列化的,下面是自己实现的一个序列化方法,分享下. 以下是通过byte[]来进行序列化的,因为bitmap是没有序列化的,需要我们去实现,可以选择继承bitmap实现序列化,这里采用byte[]方式.接下来就可以使用Intent的putExtra(String name,Parcelable value)来发送bitmap了. import java.io.ByteArrayOutputStream; import a…
Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short[].int.int[].long.long[].float.float[].double.double[].String.String[],还有实现Serializable.Parcelable接口的类对象. package com.example.test; import android.os.…
本文主要介绍Parcelable和Serializable的作用.效率.区别及选择,关于Serializable的介绍见Java 序列化的高级认识. 1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的.而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存…
本文主要介绍Parcelable和Serializable的作用.效率.区别及选择,关于Serializable的介绍见Java 序列化的高级认识. 1.作用 Serializable的作用是为了保存对象的属性到本地文件.数据库.网络流.rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的.而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存…
一.序列化的目的 永久性保存对象,保存对象的字节序列到本地文件中: 通过序列化对象在网络中传递对象: 通过序列化在进程间传递对象; 在Intent中进行传递复杂自定义类对象时,需要实现Parcelable接口. 二.实现序列化的方法及优缺点比较 1.实现Serializable接口,不需要实特定的接口,相当于对象打了一个标记,系统会自动将其序列化. 优点: 可将数据存储在磁盘 缺点: 在Android系统中,序列化时会产生大量的临时变量引起频繁的GC. 2.实现Parcelable接口,为And…
序列化 在Android中.对象在实现序列化之前是无法直接作为Intent參数在Activity之间传递的. Android中对象序列化能够通过实现Serializable接口或者实现Parcelable接口. 接下来,我会介绍一下实现这两个接口的方法以及怎样在这两者之间进行选择. Serializable Serializable是一个标记接口,意味着它没有须要实现的方法. 由于对象再实现Serializable接口的时候,仅仅须要简单的implements就可以. 演示样例代码例如以下: p…
Parcelable相较于Serializable的效率更高 public class ChargeMode implements Parcelable{ public String name; public int playway; public String price; public String validTime; public ChargeMode(){ } private ChargeMode(Parcel in){ name = in.readString(); playway…
package com.example.xmloperation; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; imp…
Kotlin 有 extension 可以很方便的让类继承 Parcelable 接口. 项目中引入一个较新版本的 Kotlin 引入 Kotlin extensions classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 加入这一段设置 androidExtensions { experimental = true } 在所在类的文件头中引入 import kotlinx.android…
1.xml文件的序列化:采用XmlSerializer来实现XML文件的序列化.相比传统方式,更高效安全 MainActivity.java package com.example.test_buildxmlfile; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.Random; import org…
大家都知道,要想在Intent里面传递一些非基本类型的数据,有两种方式,一种实现Parcelable,另一种是实现Serializable接口. 今天先不说Serializable 接口,只说Parcelable. 我们知道,Parcelable 只是一个接口,里面有几个关键方法: writeToParcel /** * Flatten this object in to a Parcel. * * @param dest The Parcel in which the object shoul…
Android Serialization 目的: 为了方便測试传感器数据处理算法,Android程序的採集数据.序列化保存为文件.pc程序再通过反序列化读入对象,在PC上測试算法. Java 序列化: 将Java对象序列化为二进制文件的Java序列化技术是Java系列技术中一个较为重要的技术点,在大部分情况下,开发者仅仅须要了解被序列化的类须要实现Serializable接口.使用ObjectInputStream和ObjectOutputStream进行对象的读写. 注意事项: 要序列化的对…
ava序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 2.为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本.图片.音频.视频等, 而这些数据都会以二进制序列的形式在网络上传送.那么当两个Java进程进行通信时,能否实现进程间的对象传送呢…
Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数.其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值.这个数组的类型是JNINativeMethod,定义如下: typedef struct { const char* name; const char* signature; void* fnPtr; } JNINativeMethod; 第一个变量name是Java中函数的名字. 第二个变量sign…
思路: http://stackoverflow.com/questions/10898116/make-custom-parcelable-containing-byte-array 谢谢, 这位外国友人的帮助, 终于解决啦 !…
PS:还有几天就开学了.先来一发. 学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.Parcelable的工作原理 6.相关实例 1.序列化的目的 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tst…
https://blog.csdn.net/kroclin/article/details/40902721 一.前言相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化.android中实现方式有两种,第一.实现Serializable接口,这种比较简单,直接声明就好:第二种,实现Parcelable接口,这种方式就比较复杂,往往需要写多些代码去实现,不过效率就比较高,还是值得推荐这种方式.那么,现在问题来了... 因为实现比…
1.在线安装 然后打开File -> Settings -> Pugins -> Browse Repositories 如下,输入android parcelable code generator搜索到直接下就行(但是你应该下载不成功,为啥呢,你懂得****,请看离线安装)! 2.离线安装,点击这里下载安装包 下载好了之后,打开File -> Settings -> Pugins -> Install plugin from disk,选择你刚刚下载到的.zip压缩包…
Android中当两个Activity需要有信息交互的时候,可以使用Intent.具体来说: 发送单一类型数据: 发送方: String data = "Hello SecondActivity"; Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("extra_data", data); startActivity(intent); #在onC…
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Generator ----------------------------------------------------------------------------- Parcelable  , 这个词大家应该不陌生吧,用于序列化对象的一个接口 不清楚的可以看一下这篇博客:Intent传递对象的两…