0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS语言基础类库开发指南上线啦!

HarmonyOS开发者 来源:未知 2023-10-18 16:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

语言基础类库提供哪些功能?多线程并发如何实现?TaskPool(任务池)和Worker在实现和使用场景上有何不同?

针对开发者关注的并发等语言基础类库的相关能力,我们在新推出的语言基础类库开发指南中提供了详细的介绍和开发指导,帮助开发者全面了解并发实现、容器类库基础操作、XML的生成解析与转换等。

本期HarmonyOS开发者资料直通车带您快速了解内容干货~

语言基础类库文档上新介绍

语言基础类库开发指南为HarmonyOS应用开发者提供了常用的基础能力:

  • 提供异步并发和多线程并发的能力。

  • 提供常见的容器类库增、删、改、查的能力。

  • 提供XML生成、解析与转换URI/URL构造和解析的能力。

  • 提供常见的字符串和二进制数据处理的能力,以及控制台打印的相关能力。

  • 提供获取进程信息和操作进程的能力。

wKgZomUvx5qABj8YAAJLGrSAVw4130.png

ArkTS语言基础类库能力示意图

本次上新的语言基础类库开发指南主要针对并发能力、容器类库能力、XML生成解析与转换这三大方面,全面清晰地讲解了各自的实现机制并提供了对应的具体示例和指导,助力开发者实现应用开发。

开发者可在HarmonyOS文档官网,直接搜索想了解的场景和能力,快速直达文档进行浏览。

如何实现异步并发和多线程并发

并发是指在同一时间段内,能够处理多个任务的能力。为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,HarmonyOS系统提供了异步并发和多线程并发两种处理策略。

  • 异步并发:是指异步代码在执行到一定程度后会被暂停,以便在未来某个时间点继续执行,这种情况下,同一时间只有一段代码在执行。

  • 多线程并发:允许在同一时间段内同时执行多段代码。在主线程继续响应用户操作和更新UI的同时,后台也能执行耗时操作,从而避免应用出现卡顿。

ArkTS支持异步并发和多线程并发。

  • Promise和async/await提供异步并发能力,适用于单次I/O任务的开发场景。

  • TaskPool和Worker提供多线程并发能力,适用于CPU密集型任务、I/O密集型任务和同步任务等并发场景。

1、异步并发的实现

Promise和async/await提供异步并发能力,是标准的JS异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行。

  • Promise是一种用于处理异步操作的对象,可以将异步操作转换为类似于同步操作的风格,以方便代码编写和维护。Promise提供了一个状态机制来管理异步操作的不同阶段,并提供了一些方法来注册回调函数以处理异步操作的成功或失败的结果。

  • async/await是一种用于处理异步操作的Promise语法糖,使得编写异步代码变得更加简单和易读。通过使用async关键字声明一个函数为异步函数,并使用await关键字等待Promise的解析(完成或拒绝),以同步的方式编写异步操作的代码。

异步并发能力适用于单次I/O任务的场景开发,例如一次网络请求、一次文件读写等操作。

文档链接

异步并发概述https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/async-concurrency-overview-0000001632690002-V3

单次I/O任务开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/single-io-development-0000001681129701-V3

2、多线程并发的实现

ArkTS提供了TaskPool和Worker两种并发能力供开发者选择。TaskPool和Worker的作用是为应用程序提供一个多线程的运行环境,用于处理耗时的计算任务或其他密集型任务。可以有效地避免这些任务阻塞主线程,从而最大化系统的利用率,降低整体资源消耗,并提高系统的整体性能。

由于TaskPool的工作线程会绑定系统的调度优先级,并且支持负载均衡(自动扩缩容),而Worker需要开发者自行创建,存在创建耗时以及不支持设置调度优先级,故在性能方面使用TaskPool会优于Worker,因此大多数场景推荐使用TaskPool。

TaskPool偏向独立任务(线程级)维度,超长任务(大于3分钟)会被系统自动回收;而Worker偏向线程的维度,支持长时间占据线程执行。

TaskPool和Worker各自的实现特点和适用场景存在差异,详细请参见TaskPool和Worker的对比

多线程并发能力,适用于CPU密集型任务、I/O密集型任务和同步任务等并发场景。

文档链接

TaskPoolWorker的对比:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/taskpool-vs-worker-0000001632849934-V3

CPU密集型任务开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/cpu-intensive-task-development-0000001681369757-V3

I/O密集型任务开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/io-intensive-task-development-0000001681489597-V3

同步任务开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/sync-task-development-0000001632370254-V3

容器类库的基础操作

容器类库,用于存储各种数据类型的元素,并具备一系列处理数据元素的方法。

容器类采用了类似静态语言的方式来实现,并通过对存储位置以及属性的限制,让每种类型的数据都能在完成自身功能的基础上去除冗余逻辑,保证了数据的高效访问,提升了应用的性能。

当前提供了线性和非线性两类容器,共14种。每种容器都有自身的特性及使用场景。

1、线性容器

线性容器实现能按顺序访问的数据结构,其底层主要通过数组实现,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七种。

线性容器,充分考虑了数据访问的速度,运行时(Runtime)通过一条字节码指令就可以完成增、删、改、查等操作。

2、非线性容器

非线性容器实现能快速查找的数据结构,其底层通过hash或者红黑树实现,包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七种。非线性容器中的key及value的类型均满足ECMA标准。

文档链接

线性容器https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/linear-container-0000001681209893-V3

非线性容器https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/nonlinear-container-0000001632530094-V3

XML生成、解析与转换

XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应用领域。

语言基础类库提供了XML相关的基础能力,包括:XML的生成、XML的解析和XML的转换。

1、XML生成

XML模块提供XmlSerializer类来生成XML文件,输入为固定长度的Arraybuffer或DataView对象,该对象用于存放输出的XML数据。通过调用不同的方法来写入不同的内容,可以生成一份完整的XML文件。

2、XML解析

对于以XML作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析XML标签和标签值、解析XML属性和属性值、解析XML事件类型和元素深度三类场景。

XML模块提供XmlPullParser类对XML文件解析,输入为含有XML文本的ArrayBufffer或DataView,输出为解析得到的信息。

3、XML转换

将XML文本转换为JavaScript对象可以更轻松地处理和操作数据,并且更适合在JavaScript应用程序中使用。

语言基础类库提供ConvertXML类将XML文本转换为JavaScript对象,输入为待转换的XML字符串及转换选项,输出为转换后的JavaScript对象。

文档链接

XML生成https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-generation-0000001681489601-V3

XML解析https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-parsing-0000001632370258-V3

XML转换https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/xml-conversion-0000001632690010-V3

我们期待您的反馈

以上就是本期为大家准备的HarmonyOS语言基础类库开发指南上新内容,希望能够帮助开发者更高效地探索、体验、上手HarmonyOS。

同时,我们十分重视开发者的意见,欢迎各位开发者在HarmonyOS应用开发官网积极反馈意见。

我们将持续提升文档体验、丰富和完善内容,感谢各位开发者的支持及信赖,您的满意是我们持续提升文档体验的目标和动力。

请关注HarmonyOS开发者公众号更多HarmonyOS开发者资料直通车相关推送,以获取最新文档和内容资源!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36277

原文标题:HarmonyOS语言基础类库开发指南上线啦!

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C#上位机实战开发指南

    电子发烧友网站提供《C#上位机实战开发指南.pdf》资料免费下载
    发表于 01-11 17:15 6次下载

    钉钉正式开源HarmonyOS图片编辑组件

    近日,由钉钉团队自主研发的“HarmonyOS图片编辑组件”正式上线OpenHarmony三方中心仓并开源。作为一款填补鸿蒙社区图像处理领域空白的重量级组件,该方案基于HarmonyOS
    的头像 发表于 01-05 09:58 647次阅读

    TDK SmartMotion Platform Ver. G 硬件开发指南

    TDK SmartMotion Platform Ver. G 硬件开发指南 在当今的电子技术领域,运动传感器的应用越来越广泛,从消费电子到工业控制,都离不开高精度、高性能的运动传感器。TDK
    的头像 发表于 12-25 11:40 781次阅读

    电子工程师硬件设计开发指南

    电子工程师硬件设计开发指南 作为电子工程师,在硬件设计开发过程中,规范的文档和清晰的设计思路至关重要。以下为大家详细介绍硬件设计开发的相关要点。 文件下载: Amphenol Aerospace
    的头像 发表于 12-10 15:05 682次阅读

    避坑指南!RK3568开发板选型,这5点没看清千万别下手!(附迅为驱动开发指南资源)

    避坑指南!RK3568开发板选型,这5点没看清千万别下手!(附迅为驱动开发指南资源)
    的头像 发表于 10-30 15:49 1057次阅读
    避坑<b class='flag-5'>指南</b>!RK3568<b class='flag-5'>开发</b>板选型,这5点没看清千万别下手!(附迅为驱动<b class='flag-5'>开发指南</b>资源)

    中微爱芯AiP9P35X系列芯片开发指南

    中微爱芯为AiP9P35X系列芯片提供一份产品开发指南和一个可以供客户调用的高可靠性文件,帮助用户快速掌握芯片性能,降低用户触控按键开发难度和产品开发周期,提高
    的头像 发表于 09-08 16:20 3054次阅读
    中微爱芯AiP9P35X系列芯片<b class='flag-5'>开发指南</b>

    中微爱芯AiP8F35XX系列触摸芯片开发指南

    中微爱芯为AiP8F35XX系列芯片提供一份产品开发指南,帮助用户快速掌握芯片性能,降低产品开发周期,提高开发效率。
    的头像 发表于 08-25 16:42 4698次阅读
    中微爱芯AiP8F35XX系列触摸芯片<b class='flag-5'>开发指南</b>

    中微爱芯AiP8F32XX系列芯片开发指南

    中微爱芯为AiP8F32XX系列芯片提供一份产品开发指南,帮助用户快速掌握芯片性能,降低产品开发周期,提高开发效率。
    的头像 发表于 08-13 11:39 4309次阅读
    中微爱芯AiP8F32XX系列芯片<b class='flag-5'>开发指南</b>

    HarmonyOS 5】金融应用开发鸿蒙组件实践

    HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融应用 (金融理财#
    的头像 发表于 07-11 18:20 1115次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】金融应用<b class='flag-5'>开发</b>鸿蒙组件实践

    从驱动到应用:RT-Thread环境下的SDIO开发指南

    目录硬件介绍搭建开发环境配置SDIO驱动挂载文件系统文件读写测试演示视频源码工程总结本文主要讲述RT-Thread环境下的SDIO开发指南,基于MCXN947开发板。1硬件介绍本次测评的是SDIO
    的头像 发表于 06-28 09:02 3022次阅读
    从驱动到应用:RT-Thread环境下的SDIO<b class='flag-5'>开发指南</b>

    HarmonyOS入门指南

    上手的HarmonyOS工具,借助众多实用工具,致力于助力开发者迅速构建鸿蒙应用。 2、开源框架 harmony-utils 一款功能丰富且极易上手的
    的头像 发表于 06-27 00:11 911次阅读

    ArkUI-X在Android平台动态化开发指南

    目的; 场景2:特性Bundle动态化,特性和宿主应用发布解耦; 开发指南 目录说明 动态加载时要求应用沙箱内目录架构如下所示: /data/data/应用/files/arkui-x
    发表于 06-15 23:33

    HarmonyOS5云服务技术分享--云数据使用指南

    ? 华为云数据(CloudDB)在HarmonyOS中的使用指南 ? ​​嗨,开发者朋友们!​​ 今天咱们来聊聊华为云数据(CloudD
    发表于 05-22 18:29

    HarmonyOS5云服务技术分享--ArkTS开发函数

    ✨【手把手教你玩转HarmonyOS云函数调试】✨ Hey 开发者朋友们!今天咱们来聊聊怎么用命令行快速调试HarmonyOS的云函数,让你开发效率直接起飞~ ? ? 先来划重点: ✅
    发表于 05-22 17:29

    HarmonyOS5云服务技术分享--账号关联开发指南

    ? 大家好!今天我们来聊聊如何在HarmonyOS应用开发中,使用ArkTS(API 12)实现账号关联功能。无论是社交应用、游戏还是工具App,账号体系都是用户体验的重要一环。通过灵活的账号关联
    发表于 05-22 16:53