首页 > 其他分享 >鸿蒙Next之数据同步艺术之二:深入理解标准化数据类型 (UTD)

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

时间:2024-10-23 10:34:10浏览次数:1  
标签:UTD 标准化 image 数据类型 Next 开发者 数据结构

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

UTD 的设计原则

  • 层级结构: UTD 采用层级结构进行类型分类,方便开发者理解和使用。例如,图片类型可以归属于图像类型,图像类型可以归属于媒体类型。
  • 物理与逻辑分类: UTD 将数据类型分为物理和逻辑两类,方便开发者从不同维度描述数据类型。例如,图片类型既可以是一个图像对象,也可以是一个文件。
  • 预置与自定义: UTD 提供了预置数据类型,例如图片、视频、音频等,方便开发者快速使用。同时,开发者也可以自定义数据类型,满足个性化需求。

UTD 的优势

  • 类型模糊问题: UTD 解决了 HarmonyOS 系统中类型模糊问题,例如不同应用对同一类型数据的描述方式不一致。
  • 跨应用兼容性: UTD 提高了不同应用之间的兼容性,使得应用可以更容易地共享和交换数据。
  • 开发效率: UTD 减少了开发者对数据类型定义和解析的工作量,提高了开发效率。

UTD 的使用

  • 查询 UTD 信息: 开发者可以使用 ArkData 提供的接口查询 UTD 信息,例如根据文件扩展名查询 UTD 类型,或者根据 MIME 类型查询 UTD 类型。
  • 创建 UTD 对象: 开发者可以使用 ArkData 提供的接口创建 UTD 对象,例如创建图片 UTD 对象、视频 UTD 对象等。
  • UTD 对象属性: UTD 对象包含了一系列属性,例如 uniformDataTypefilenameExtensionsmimeTypes 等,开发者可以根据需要进行访问和修改。
    示例代码
// 查询文件类型
let fileType = uniformTypeDescriptor.getUniformDataTypeByFilenameExtension('.jpg');
console.log(fileType.typeId); // 输出:general.image
// 创建图片 UTD 对象
let imageUTD = new uniformTypeDescriptor.ImageUTD({
  uniformDataType: 'general.image',
  filenameExtensions: ['.jpg', '.png', '.gif'],
  mimeTypes: ['image/jpeg', 'image/png', 'image/gif'],
});
// 获取图片 UTD 对象属性
console.log(imageUTD.filenameExtensions); // 输出:['.jpg', '.png', '.gif']
console.log(imageUTD.mimeTypes); // 输出:['image/jpeg', 'image/png', 'image/gif']

深入理解标准化数据结构

标准化数据结构的优势

  • 数据格式统一: 标准化数据结构定义了数据内容的统一格式,方便不同应用之间的数据交换和共享。
  • 数据解析简化: 标准化数据结构简化了数据解析的复杂性,使得开发者可以更容易地处理数据。
  • 开发效率提升: 标准化数据结构减少了开发者对数据格式定义和解析的工作量,提高了开发效率。

标准化数据结构的使用

  • 创建标准化数据结构: 开发者可以使用 ArkData 提供的接口创建标准化数据结构,例如创建图片数据结构、视频数据结构等。
  • 标准化数据结构属性: 标准化数据结构包含了一系列属性,例如图片的宽高、分辨率、URL 等,开发者可以根据需要进行访问和修改。
  • 标准化数据结构应用: 标准化数据结构可以应用于各种场景,例如文件预览、文件分享、拖拽等。
    示例代码
// 创建图片数据结构
let imageStruct = new uniformDataStruct.ImageStruct({
  uniformDataType: 'general.image',
  width: 1920,
  height: 1080,
  url: 'https://www.example.com/image.jpg',
});
// 获取图片数据结构属性
console.log(imageStruct.width); // 输出:1920
console.log(imageStruct.height); // 输出:1080
console.log(imageStruct.url); // 输出:https://www.example.com/image.jpg

总结

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

标签:UTD,标准化,image,数据类型,Next,开发者,数据结构
From: https://www.cnblogs.com/samex/p/18495814

相关文章

  • 鸿蒙Next之数据同步艺术之一:方舟数据管理揭秘
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。本文将介绍华为鸿蒙HarmonyOSNext中的......
  • 鸿蒙Next之数据同步艺术之五:跨应用数据交互
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在许多应用场景中,用户需要在不同应用之......
  • 鸿蒙Next之数据同步艺术之四:必要不充分理解分布式数据对象同步
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。分布式数据对象的生命周期分布式数据对......
  • 变量与基本数据类型
    文章目录一、程序员必备修养--注释1-1.单行注释-->用#符号表示,在#后面的内容都是注释1-2.多行注释-->用一对三引号包裹着的内容(三引号=三对单/双引号)二、初识变量三、变量的基本使用3-1.声明变量:把右边的数据赋值给左边的变量名3-2.使用变量:直接输出变量名3-3.用i......
  • C++入门Day5 ~ 6:简单变量 & 数据类型 part 1 <8000字长文带你初步理解数据类型>
    这是我在学习中的一个小问题,希望对你也有所帮助:        问:数据类型和简单变量属于oop的基本概念吗?        答:不是!数据类型和简单变量本身并不属于面向对象编程(OOP)的基本概念,但它们是编程中的基础概念,面向对象编程会基于这些基础概念来构建更复杂的结构。......
  • 004 Python数据类型
    1#int可以将纯整数构成的字符串转换成整型,若包含其它非整数符号则会报错2s='123'3res=int(s)4print(res,type(res))56#s='12.3'7#res=int(s)8#print(res,type(s))910#十进制与其它进制之间的相互转换11#十进制转其它进制12print......
  • Go 语言的数据类型转换有哪些?
    当不同的数据类型相互操作的时候,就需要类型转换,Go的数据类型转换还是比较简单的。数据类型转换包含显式和隐式两类,隐式的一般是大的数据类型到小的类型进行转换,不会有精度丢失的问题。否则就需要进行显式转换。转换的场景包括:有数学计算、赋值、函数调用、数据库交互、JSON编......
  • JavaScript从零学起 —— 数据类型(进阶篇6)
    说明:此文章用作个人学习记录,若有任何问题或建议欢迎大家在评论区讨论文章目录前言一、日期(Date)1.Date类型的定义2.创建Date3.常用方法4.日期格式化5.常见问题与解决方案二、正则表达式(RegExp)1.正则表达式的定义2.创建正则表达式3.匹配常用字符4.常......
  • 华为鸿蒙Next:应用启动框架AppStartup的解析与实战应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在华为鸿蒙(HarmonyOS)开发领域,应用的启......
  • 用人话讲计算机:小白版Python篇!(二)基本数据类型1和进制数
    一、数据类型上一节我们曾讲到a=1,b=2,c=“b”之类的东西,我们知道a,b,c叫做变量,而现在所谓的数据类型,其实就是1,2,“b”他们分别属于什么。而我们将数据们分为以下几个类型:1、整数整数,就是我们日常生活中的整数,如1,2,3,-1,-2,0,10,90之类。定义方式:a=12、浮点数浮点数,就是小数,如1......