鸿蒙Next之数据同步艺术之三:标准化数据类型解析-UTD详解

HarmonyOS NEXT开发:UTD标准化数据类型详解 针对标准化数据类型,典型的应用场景有:文件管理中的图片预览、系统分享等。 阅读详情

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。

本文将深入探讨华为鸿蒙HarmonyOS Next 中的核心概念——标准化数据类型(Uniform Type Descriptor,简称 UTD),并详细解析其设计和作用,包括标准化数据类型的ID、层级归属、跨应用、跨设备的兼容性等方面。同时,本文还将介绍如何创建自定义数据类型,并与预置数据类型结合使用,以展示 UTD 的灵活性和实用性。

UTD 的设计与作用

UTD 的定义

UTD 是华为鸿蒙HarmonyOS Next 中的一个核心概念,它为不同类型的数据定义了一个唯一的标识符和一组属性,例如归属类型、简要描述、文件扩展名、MIME 类型等。UTD 的引入,旨在解决 HarmonyOS 系统中类型模糊问题,例如不同应用对同一类型数据的描述方式不一致,从而提高不同应用之间的兼容性和数据交互效率。

UTD 的优势
  • 类型唯一性: UTD 为每种数据类型定义了一个唯一的标识符,例如 general.image、general.video 等,避免了类型歧义和混淆。
  • 层级归属: UTD 采用层级结构进行类型分类,方便开发者理解和使用。例如,图片类型可以归属于图像类型,图像类型可以归属于媒体类型。
  • 跨应用兼容性: UTD 提高了不同应用之间的兼容性,使得应用可以更容易地共享和交换数据。
  • 跨设备兼容性: UTD 支持跨设备数据同步,使得应用可以轻松地在不同设备之间共享数据。

UTD 的解析

UTD 的 ID

UTD 的 ID 是一个唯一的字符串,用于标识特定的数据类型。例如,图片类型的 UTD ID 是 general.image,视频类型的 UTD ID 是 general.video。

UTD 的层级归属

UTD 的层级归属是指某种数据类型归属于哪个更高层级的类型。例如,图片类型可以归属于图像类型,图像类型可以归属于媒体类型。层级归属有助于开发者理解数据类型之间的关系,并方便地进行数据管理和操作。

UTD 的兼容性

UTD 的兼容性是指不同应用和设备之间对数据类型的识别和理解的一致性。UDMF 通过定义一套统一的数据类型标准,确保了不同应用和设备之间可以无缝地进行数据交换和共享。

创建自定义数据类型

开发者可以根据自己的需求,创建自定义数据类型,并将其注册到系统中,以便其他应用可以引用和使用。
示例代码:

// 创建自定义数据类型
let customType = new uniformTypeDescriptor.TypeDescriptor({
  typeId: 'com.example.custom-type',
  belongingToTypes: ['general.object'],
  description: '自定义数据类型',
  filenameExtensions: ['.custom'],
  mimeTypes: ['application/custom-type'],
});
// 注册自定义数据类型
uniformTypeDescriptor.registerTypeDescriptor(customType);
// 在其他应用中使用自定义数据类型
let customTypeObject = uniformTypeDescriptor.getTypeDescriptor('com.example.custom-type');
console.log(customTypeObject.description); // 输出:自定义数据类型

预置数据类型与自定义数据类型的结合使用

开发者可以将自定义数据类型与预置数据类型结合使用,以实现更复杂的数据管理需求。
示例代码:

// 创建自定义数据类型
let customType = new uniformTypeDescriptor.TypeDescriptor({
  typeId: 'com.example.custom-image',
  belongingToTypes: ['general.image'],
  description: '自定义图片类型',
  filenameExtensions: ['.custom-image'],
  mimeTypes: ['application/custom-image'],
});
// 注册自定义数据类型
uniformTypeDescriptor.registerTypeDescriptor(customType);
// 创建自定义图片数据结构
let customImageStruct = new uniformDataStruct.ImageStruct({
  uniformDataType: 'com.example.custom-image',
  width: 1920,
  height: 1080,
  url: 'https://www.example.com/custom-image.jpg',
});
// 在其他应用中使用自定义图片数据结构
let customImageUTD = uniformTypeDescriptor.getTypeDescriptor('com.example.custom-image');
let customImageStructObject = new uniformDataStruct.ImageStruct({
  uniformDataType: customImageUTD.typeId,
  width: 1280,
  height: 720,
  url: 'https://www.example.com/another-custom-image.jpg',
});

总结

UTD 是华为鸿蒙HarmonyOS Next 中的一个强大的数据管理工具,它通过标准化数据类型和层级归属,实现了不同应用、不同设备之间数据交互的统一和规范。我们可以利用 UTD 创建自定义数据类型,并将其与预置数据类型结合使用,以实现更复杂的数据管理需求。

鸿蒙OpenHarmony【UTD预置列表】ArkData方舟数据管理 标准化数据类型(Uniform Type Descriptor,简称UTD)用于解决系统中的类型模糊问题,即针对同一种数据类型,存在不同的类型描述方式:MIME Type、文件扩展名等。例如描述jpg/jpeg类型图片时,可以使用image/jpeg、.jpg、.jpeg或image/picture等方式进行描述。 阅读详情

相关推荐

阿里系UTDID库生成唯一性ID分析

在重构某个apk的时候,偶然发现了友盟在使用一个叫utdid的库,感觉是生成UUID用的,刚好对UUID的生成逻辑比较感兴趣,就有了下文。     一、utdid实现过程分析        publicstatic String getUtdid(Context arg2)是utdid库对外调用的接口, 在com.ta.utdid2.device.UTDevice类里        具体代码

燕十二的BLOG 4万+

鸿蒙Next之数据同步艺术之二:深入理解标准化数据类型 (UTD)

UDMF 是华为鸿蒙HarmonyOS Next 中的一个强大的数据管理框架,它通过标准化数据类型和标准化数据结构,实现了不同应用、不同设备之间数据交互的统一和规范。我们可以利用 UDMF 模块轻松地实现跨应用、跨设备的数据交互,并构建安全可靠的应用。

same4869的博客 537

鸿蒙NEXT(开发进阶)UDMF开发规范(C/C++)

统一数据管理框架(UDMF):提供了数据跨应用、跨设备交互标准,定义了跨应用、跨设备数据交互过程中的数据语言,提升数据交互效率。提供安全、标准化数据流通通路,支持不同级别的数据访问权限与生命周期管理策略,实现高效的数据跨应用、跨设备共享。

wea22984984的博客 844

鸿蒙NEXT之数据同步艺术之一:方舟数据管理揭秘

方舟数据管理 (ArkData) 是华为鸿蒙 HarmonyOS NEXT 中的一个强大的数据管理框架,它为我们开发者提供了便捷的数据存储、管理和同步功能,并提升了数据管理的效率和安全性能。: 关系型数据库是华为鸿蒙 HarmonyOS NEXT 中的一个持久化存储机制,它基于 SQLite 组件,支持复杂的数据库操作,例如增删改查、事务、索引等。: ArkData 提供了一套统一的数据类型和结构定义,例如标准化数据类型 (UTD) 和标准化数据结构,用于描述不同类型的数据,并规范数据交互的格式。

xinyuan82的博客 774

鸿蒙第16篇——数据持久化

本文介绍的数据持久化是指鸿蒙应用的数据持久化存储。它是将内存中的数据通过文件或数据库的形式保存到设备存储中。鸿蒙支持多种数据存储方式, 包括用户首选项Preferences、 键值型数据库KV-Store和关系型数据库。

daozhongyang的专栏 155

麒麟V10系统下微信PC版安装全攻略:从源配置到一键安装(附常见问题解决)

本文详细介绍了在麒麟V10系统下安装和优化微信PC版的完整流程,包括系统环境准备、软件源配置、多途径安装方案以及性能优化技巧。特别针对国产操作系统用户,提供了从基础安装到高级配置的一站式解决方案,并附有常见问题排查方法,帮助用户快速实现微信PC版的高效运行。

weixin_30500105的博客 717

鸿蒙Next之数据同步艺术之一:方舟数据管理揭秘

方舟数据管理(ArkData)是华为鸿蒙HarmonyOS Next 中的一个重要组件,它为开发者提供了一套统一的数据存储、管理和同步机制。ArkData 旨在解决不同应用、不同设备之间数据交互的问题,并提升数据管理的效率和安全性能。方舟数据管理 (ArkData) 是华为鸿蒙HarmonyOS Next 中的一个强大的数据管理框架,它为我们开发者提供了便捷的数据存储、管理和同步功能,并提升了数据管理的效率和安全性能。开发者可以利用ArkData模块轻松地实现跨应用、跨设备的数据交互,并构建安全可靠的应用。

same4869的博客 1115

RPA 财务共享中心与RPA赋能

在和集团财务官交流的时候,客户经常会提到FSSC,其中有准备建立FSSC,正在建立FSSC,以及已建成FSSC正使用的,当中会有些对FSSC的疑虑和问题,所以花费些时间对FSSC进行了深入调研,从而也有幸拜读了王兴山、陈剑、梅震、钱自严等专业人士写的几本关于FSSC的书,对FSSC的前因后果有了更深入的认识,同时结合自己在FSSC的一些项目经验,故做了本次分享。 本文章主要分享财务共享中心以及R...

weixin_40244959的博客 2756

鸿蒙UTD详解:标准化数据类型的跨端协作密钥[特殊字符]

唯一标识:每个数据类型有唯一ID(如),避免类型歧义层级结构:类似文件目录的分类体系(跨端兼容:统一应用/设备对数据类型的认知,提升交互效率。

lyc233333的博客 354

Ubuntu22.04安装ROS1

代表使用 2 线程进行编译,可以根据 CPU 适当调整。如果出现小乌龟窗口,说明安装成功 🎉!启动成功,则打开另一个终端,测试。需要解决一些兼容性问题,因为。由于 Ubuntu 22.04。过程,确保成功安装。

asafriend的博客 4647

山石网科Hillstone防火墙基础上网配置_CLI命令行(最新版)

山石网科Hillstone防火墙安全网关基础上网基础网络配置_CLI命令行(最新版)

路与肥的博客 1万+

ArkData 方舟数据管理:从存数据到安全共享的完整实战指南

鸿蒙ArkData数据管理:从持久化到安全共享 摘要:本文介绍鸿蒙ArkData数据管理方案,涵盖四大核心模块: 持久化存储:提供Preferences和RDB两种方式,分别适用于键值配置和结构化数据存储 标准化数据:通过关系型数据库管理笔记应用等结构化数据 跨应用共享:支持应用间安全高效的数据交换 安全可靠性:包含数据加密、备份恢复等机制 文章以笔记应用为例,详细演示了代码实现,包括: 使用Preferences存储用户配置 通过RDB设计笔记数据表结构 实现单例模式的数据管理类 关键操作如flush写入

wdracky的专栏 327

UR5 机械臂手眼标定(Eye-in-Hand)实战:OpenCV 求解 AX=XB,误差 < 2mm

本文详细介绍了UR5机械臂在Eye-in-Hand配置下的手眼标定实战,通过OpenCV实现高精度标定,最终达到误差小于2mm的工业级精度要求。文章涵盖了标定基础原理、环境搭建、数据采集策略、核心算法实现及误差分析与优化,为视觉机械臂的自主抓取提供了实用指南。

weixin_31476015的博客 295

【精通篇】打造React Native鸿蒙复合组件库开发系列基于HarmonyOS API 24【精通:IndexBar 索引栏(点击索引栏时,会自动跳转到对应的 IndexAnchor 锚点位置)

JSONP 是“JSON with padding”的简写,是在Web 服务上流行的一种JSON 变体。这个例子创建了一个新的Image 实例,然后为它的onload 和onerror 事件处理程序添加了同一。这个JSONP 请求的URL 是一个地理位置服务。CORS 出现之前,实现跨源Ajax 通信是有点麻烦的。数据通过查询字符串发送,响应可以随意设置,不过一般是位图图片或值为204 的状态码。函数的名称是通过请求来动态指定的。当然,图片探测的缺点是只能发。标签实现跨域通信的最早的一种技术。

wanmeijuhao的博客 281

激光雷达与相机外参标定(附open3d python代码)

现在的激光雷达与相机的标定程序基本都是Ubuntu框架下面的,并且都是C++代码,需要安装的依赖也比较复杂,于是自己写了一个python版本的标定程序,依赖非常简单,Windows系统也可以运行。我这里用的大疆的雷达,点比较密集,更容易用我这种方法标定,旋转的16,32线的雷达也可以用这种方法标定,只是标定点会相对难选取一些。2 手动在点云上选取N个标定点(每个点都对应图像上的点,顺序也要一致)3 通过PNP方法计算出二者的旋转投影矩阵,也就是外参矩阵。1 手动在图像上面选取N个标定点。

三维点云技术探索 3412

双向升压和降压的DC-DC转换器设计

c复制// 类型定义与常量MODE_FORWARD_BOOST, // 正向升压模式(输入700V→输出1200V)MODE_FORWARD_BUCK, // 正向降压模式(输入700V→输出<700V)MODE_REVERSE_BOOST, // 反向升压模式(输入1200V→输出700V)MODE_REVERSE_BUCK // 反向降压模式(输入<700V→输出700V)// 硬件参数float Vin;// 输入电压(0-1200V)

567

【开源鸿蒙开发板应用升级适配大赛】API20 数据篇:从ohos.data到ArkData的“搬家”实录

本文对比了OpenHarmony API9与API20的数据管理模块差异,重点分析了从ohos.data到kit.ArkData的升级体验。作者以健康应用开发为例,指出API9存在数据丢失、接口混乱等问题,而API20的ArkData则提供了统一接口、分布式同步和加密功能等优势。文章详细介绍了在RK3568开发板上的迁移步骤,包括版本升级、接口替换和功能优化,并分享了AtomGit老师的调试建议。最后强调掌握ArkData对参赛作品优化的重要性,为开发者提供了实用的升级指南。

ConanYao的博客 1105

25、量子计算:中性原子与约瑟夫森结量子比特

本文详细探讨了中性原子和约瑟夫森结两种量子比特在量子计算中的应用。中性原子量子比特利用光晶格实现量子态的操控,具有长相干时间的优势,但面临可扩展性和多量子比特操作的挑战;而约瑟夫森结量子比特基于超导技术,结合半导体制造工艺,具有低耗散和潜在的高可扩展性,但在参数控制和环境干扰方面存在难题。文章还比较了这两种方案的性能、应用场景及未来发展趋势,展望了它们在量子计算发展中的潜力与突破方向。

ol789012的博客 212

HarmonyOS 7 端侧 AI 图像超分的工程化落地

用户抱怨网络差的时候图片传不上去,更严重的是,大量的私密照片上传到云端,引发了严重的隐私合规审查危机。痛定思痛后,我们决定把 AI 模型直接塞进手机里,用端侧的 NPU 来做推理,但这绝非易事。我们首先在服务端对模型进行了知识蒸馏,把参数砍掉了一大半,然后利用 MindSpore Lite 的转换工具,将模型转成了鸿蒙底层支持的。即便如此,模型依然有 20 多兆,我们最终选择了 FP16 量化,牺牲了极其微小的画质,换取了内存占用减半。推理过程极其消耗 CPU 和内存,稍微大一点的图,处理时间长达几秒。

2602_97267507的博客 161

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

〖物流终端实战 05〗纯血鸿蒙 ArkTS 高阶性能优化:长列表渲染、组件复用与内存泄漏排查

本文深度剖析鸿蒙ArkTS高阶性能优化,直击长列表卡顿与内存泄漏痛点。针对渲染,指出ForEach全量构建的缺陷,强调采用LazyForEach(V2推荐Repeat)配合增量通知及稳定业务Key;针对组件复用,明确@Reusable仅复用实例不重置状态,必须在aboutToReuse中手动清理UI状态;针对内存泄漏,总结全局监听未注销、定时器未清理及长生命周期对象持有页面引用三大元凶,并指导通过DevEco Profiler的Heap快照排查引用链。文章强调优化需遵循“先定位后改代码”原则,助力开发者打造

Eyf • 半字节的博客 681

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

AppGallery 上架自检 SOP:签名、隐私对齐与包体校验实战【鸿蒙心迹】

上架被驳回多因签名、隐私声明与包体不一致。本文提炼“签名→隐私对齐→包体校验”自检SOP,配套一键脚本与权限三角校验代码,实现90%驳回前置拦截。通过CI强制release签名、代码/声明/功能三者权限对齐、包体完整性校验,确保提审一次过。实战清单可直接抄,让过审从运气变为流程。

wdracky的专栏 327

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【鸿蒙专题与实战】测试体系:单元测试、组件测试与 UI 测试

本文系统讲解鸿蒙开发中的三层测试实践:底层单元测试(用Hypium框架,优先覆盖纯函数、边界与异常)、中层ViewModel逻辑、顶层仅测3-5条关键UI路径。强调测试应“越往下写得越多”,因单元测试快且成本低,而UI测试慢易出错。通过实例说明断言拆分提升定位效率,结合覆盖率报告(hvigorwtest --coverage)发现盲区,核心是“用覆盖率找漏测,而非追求数字”。附五步落地清单:建测试文件、按优先级补用例、精简UI测试、生成报告、定位未覆盖行。下一篇将开启实战项目:从需求到上架全流程。

信息安全领域优质创作者|操作系统领域专家 185

窗口销毁了监听还在,HarmonyOS 7 生命周期释放的归属分界

综上所述,onWindowStageWillDestroy 是窗口监听的最后安全出口,onWindowStageDestroy 只负责断开窗口引用,onDestroy 管 Ability 级资源——三者不是“程度不同的退出回调”,而是各自有明确的归属范围。窗口监听的所有者是 WindowStage,定时器的所有者是 UIAbility,播放器的所有者是页面或 Ability(取决于你在哪一层创建的),ApplicationContext 监听的所有者是 Ability 的 context。

qq_61905492的博客 206

20 嵌入式系统架构:架构模式、实时操作系统、鸿蒙案例

嵌入式架构模式怎么选、RTOS 和通用操作系统差在哪、优先级反转怎么破?本篇把前后台、中断驱动、管态目态几种结构排成一条演进线,手把手算 RMS 可调度界限、判断任务集能不能跑得动,再把优先级继承与优先级天花板两种解法对上号,配鸿蒙案例讲清工程落地。

weixin_46316564的博客 203

HarmonyOS API 26 HMAF Skill 可解释任务计划与失败回退

围绕 HMAF Skill 的输入校验、权限边界、任务计划和失败回退,建立可观察、可重试的应用侧智能体执行模型。

2401_84996024的博客 293

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

wei_shuo的博客 5260
上一篇: 鸿蒙Next之数据同步艺术之二:深入理解标准化数据类型 (UTD)
下一篇: 鸿蒙Next之数据同步艺术之四:必要不充分理解分布式数据对象同步
SameX-4869
博客等级 码龄18年 3354粉丝 657原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值