Parcel是如何存储数据

news/2025/3/6 2:25:43/

Parcel学习

  • Parcel是如何存储数据的
    • 二级目录
    • 第一步
    • 第二步
    • 第三步
    • 如何读取呢
  • Parcel和serializable

Parcel是如何存储数据的

疑问:平时java使用它进行序列化要关注的点就是读写顺序,为什么要注意读写顺序呢?

在这里我将使用面对对象的思路用文字来大致描述这个过程。
例如我们当前序列化对象有两个变量,一个in类型,一个string类型。

二级目录

第一步

大致查看源码发现初始化创建了当前Parcel对象,把对象转成long类型的对象传递给java层,有两个关键全局变量,在堆内存创建了一块内存,定义了一个int类型来记住偏移量。

第二步

初始化完了之后当我们开始写入int类型数据,将long类型数据传递给jni,native层将long类型转成之前创建的对象的指针进行操作对象。
创建了一块内存,那么就是内存地址连续了,定义的偏移量初始值是0.

指向内存的指针 + 挪动的偏移量大小 = 新的指针地址
当第一次进来的时候,指针你可以认为是指针开始的地方,以数学的方式类理解起点是0.
挪动的偏移量目前是0,也就是起点的位置记录了一个int类型的值。

存储之后修改偏移量,我从起点的位置开始记录,记录了一个int类型的数据,那么下一次记录应该从起点位置再挪动4个字节的地方再开始记录。

挪动多少
改变偏移量的值 += sizeof(int)

第三步

重复第二步的核心方法,指向内存的指针 + 挪动的偏移量大小 = 新的指针地址
改变偏移量的值 += sizeof(in)
后面写入什么数据都一个样重复调用这个过程

如何读取呢

首先看:指向内存的指针 + 挪动的偏移量大小 = 新的指针地址
指向内存的指针并没有改动过,也就是它还是指向开始的地方,这个时候我们只要把偏移量重置为0

那么读取就可以按照要读取的数据类型大小从开始的地方读取和挪动,跟写入一样。

这就是Parcel的大致读写流程。

Parcel和serializable

serializable是IO流的方式写入磁盘进行持久化。

Parcel我们已经大致了解,就是通过native的指针挪动方式将数据写入了堆内存,这种属于android的持久化方式肯定是比serializable好的,具体对比就不说了,知道了两者的持久化方式之后用脚指头想都能分辨出来应该使用那种。


http://www.ppmy.cn/news/464638.html

相关文章

Kubernetes Pod 生命周期

Pod 生命周期是其从创建开始至终止退出的事件范围。 Pod 状态 Pending API server 创建了 Pod 对象并已存入 etcd 中,但尚未调度完成或仍处于从镜像仓库下载镜像的过程中。Running Pod 已经被调度至某节点,并且所有容器都已经被 kubelet 创建完成。Suc…

mysql攻城掠地_攻城掠地单机武将修改造出自己心目中大神.doc

?想造出自己心目中的大神,并让他们在三国大世界里面纵横天下无敌手的也可以来看看。玩厌了网络游戏,当你被土壕虐的苦不堪言的时候,想玩单机版来放松下自己受伤的小心灵的来看看(呵呵……) 测试单机版本:蒂芙尼攻城掠地单机完善版…

三国介绍

东汉末年政治腐败,统治阶级内部出现外戚和宦官之间争权夺位的斗争,相互轮番擅权,同时更加残酷地剥削压迫人民,皇族地主豪强强占土地,使之出现“馆舍布于州郡,田亩连于方国。”对人民加重征收赋税&#xff0…

网上三国

http://xf-www.hb.cninfo.net/sanguo/lishi/

微信攻城三国怎么找服务器,攻城三国怎么玩 新手FAQ常见问题答案汇总[图]

类型:策略卡牌 大小:269MB 评分:5.0 平台: 攻城三国怎么玩?很多小伙伴是第一次玩这种类型的游戏,下面友情小编为大家带来新手FAQ的常见问题答案汇总,看看能不能帮到大家哦~ 新手FAQ常见问题答案…

Java霸王的大陆梦幻版_三国志霸王的大陆,喜欢三国的进

三国是中国历史上英雄辈出的时代,《霸王的大陆》这款移植自Fc的战棋游戏更是中国手游java游戏的No.1!该游戏内容极其丰富,对玩家的要求很高,因此这完全是一款符合游戏高手要求的大型单机游戏。以下是这款游戏的核心攻略,只要稍加留…

三国兵器谱~

三国兵器谱~青龙偃月刀 青龙偃月刀,又名“冷艳锯”。刀长九尺五寸,重八十二斤,刀身上镶有蟠龙吞月的图案,因而得名。 正月初八,汜水关前。 十八镇诸侯的连营绵延百里,五颜六色的十几面大旗在西北风中迎风招…

街机三国服务器维护,街机三国,360街机三国官方网站-街机三国选区|街机三国攻略|街机三国开服表-360游戏中心...

亲爱的玩家: 您好,为保证服务器稳定运营,优化游戏体验,我们将在7月4日8点-9点对服务器进行停机维护更新。 游戏内容调整 游戏优化 1. 元素跨服掉落元素之令翻倍,并增加道具(天赋培养叶、天地人参果、高级营养液) 2. 2V2竞技周…