评论

收藏

[HarmonyOS] 13个Codelabs案例,一文带你学HarmonyOS核心能力

移动开发 移动开发 发布于:2021-07-30 19:47 | 阅读数:637 | 评论:0

HarmonyOS是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,带来简洁,流畅,连续,安全可靠的全场景交互体验。开发者可就社交购物、智慧出行、移动办公、影音娱乐、智慧教育、运动健康、智能家居等场景进行应用开发。想知道这些场景下究竟能创造出哪些新奇实用的案例,想知道当中都运用了哪些HarmonyOS核心能力?让我们通过13个Codelabs开发样例,来为大家一一阐述
社交购物

学习UI框架和卡片开发
HarmonyOS支持Java UI和JS UI两种开发方式,除了Java/JS的组件布局开发,HarmonyOS还支持服务卡片,支持多模输入等开发。

我们将为大家介绍三个社交购物场景下的Codelabs开发案例,通过这三个案例的学习,大家可以深入了解HarmonyOS UI框架、服务卡片和多模开发的相关知识点。

如图所示,案例1是使用Java UI框架编写的金融模板,该模板是使用Java UI框架中常见组件和布局进行开发的。
::: hljs-center
DSC0000.png

图1 Java UI框架金融模板
:::
案例2是使用JS UI框架编写的购物车模板,该模板是使用HML(HarmonyOS Markup Language)、CSS、JavaScript进行开发的。效果如下图所示:
::: hljs-center
DSC0001.png

图2 JS UI框架的购物车模板
:::
案例3购物模板的卡片,包含1X2,2X2,2X4三种不同的服务卡片
::: hljs-center
DSC0002.png

图3 服务卡片的购物模板
:::
另外,HarmonyOS目前不仅支持传统的输入交互方式,例如按键、触控、键盘、鼠标等,同时提供多模输入融合框架,可以支持语音等新型的输入交互方式。
::: hljs-center
DSC0003.png

图4 多模输入
:::
通过上述三个案例,开发者可以开发出自己想要的页面,大体达到了HarmonyOS初级开发者的水平,之后通过进阶学习,了解HarmonyOS的新能力、新特性,包括分布式、AI、设备管理等知识。
智慧出行

学习分布式任务调度
在智慧出行场景下,我们利用手机、手表、车机打造了一个分布式地图导航流转的案例——案例4。

分布式地图导航流转案例可以实现手机的导航信息在手表和车机之间无缝流转:上车后,在手机点击“迁移”按钮,导航流转到车机上;下车后,在车机上点击“迁移”按钮,导航流转到手表和手机,通过手表的提示信息。

视频链接

在HarmonyOS中,分布式任务调度平台对搭载HarmonyOS的多设备构筑的“超级终端”提供统一的组件管理能力,因此要实现这么一款分布式应用,其核心只需要开发者传入目标设备的deviceId,调用 continueAbility 这个接口就可以实现分布式的跨屏流转,这当中利用的就是分布式任务调度的相关技术。
::: hljs-center
DSC0004.png

图5 分布式地图导航流转核心代码
:::
移动办公

学习分布式文件服务、分布式数据服务
刚刚我们利用智慧出行场景给大家介绍了分布式任务调度的相关知识,现在我们利用移动办公场景给大家介绍分布式的另外两个核心知识点——分布式文件服务分布式数据服务

在案例5中,我们利用三台设备打造了一个超级会议终端,利用分布式文件服务,实现三台手机共享同一份PPT文稿数据。利用分布式数据服务,实现多台设备之间的同步涂鸦。

效果如视频所示:
视频链接

刚刚这个案例中应用了分布式文件服务分布式数据服务。下面我们来逐一介绍一下:

分布式文件服务让应用程序可以不感知文件所在的存储设备,在多个设备之间无缝获取文件。本例中设备和设备之间复杂的网络通信系统HarmonyOS已经为开发者实现好了,各位开发者只需要调用一行代码 Context.getDistributedDir() 就可以读取到分布式文件路径,将PPT文稿数据存放其中就可以实现跨设备的文件读取。

分布式文件服务运作示意图如下:
::: hljs-center
DSC0005.png

图6 分布式文件服务运作示意图
:::
分布式数据服务支持应用数据相互同步,为用户提供在多种终端设备上一致的数据访问体验。在本例中,两台设备上同步显示涂鸦笔记“1”就是使用的这一分布式技术。我们可以理解涂鸦笔记就是一些点坐标的信息,绘制的过程就是存储信息的过程,调用的接口是 singleKvStore.putString(key,value),同样设备和设备之间复杂的数据同步由系统自动完成,开发者只需要调用 singleKvStore.getString(key) 就可以实现多台设备之间涂鸦笔记的同步显示。
分布式数据服务运作示意图如下:
::: hljs-center
DSC0006.png

图7 分布式数据服务运作示意图
:::
影音娱乐

学习分布式技术选型
我们通过智慧出行和移动办公两个典型场景给大家完整的介绍了分布式的三个核心技术(分布式任务调度、分布式文件服务和分布式数据服务),但开发者经常遇到的问题是不知道应该选择哪一个分布式技术对应到我们的应用中,也就是技术选型。下面我们利用影音娱乐场景来帮助大家进一步的理解如何进行技术选型。

案例6是一个分布式视频播放器,其实现的功能是通过左侧手机,可以把正在播放的视频流转到右侧手机上,左侧手机还能控制右侧手机的音量、播放进度等。以上都是利用的分布式任务调度实现的。
::: hljs-center
DSC0007.gif

图8 分布式视频播放器
:::
案例7是一个分布式照相机,其实现的功能是右侧手机拍摄的照片可以立即流转到左侧手机进行显示,这利用的是分布式文件服务。
::: hljs-center
DSC0008.gif

图9 分布式照相机
:::
案例8是一个分布式遥控器,其实现的功能是小屏输入的文字可以同步在大屏上显示,手机承担大屏搜索中的文字输入功能,这是利用的分布式数据服务实现的。
::: hljs-center
DSC0009.gif

图10 分布式遥控器
:::
智慧教育

学习AI能力

HarmonyOS拥有强大的AI能力,支持开箱即用。开发者可以灵活、便捷地选择AI能力,让应用变得更加智能。我们利用智慧教育这一场景来学习。

案例9是在AI能力加持下的智慧教育系统,其用到了AI语音识别、通用文字识别、AI语音播报三项技术。

首先,该系统具备可见可说的能力,即老师可以通过和系统对话来寻找并打开对应的课件,这是利用AI语音识别的相关能力。当老师通过语音控制课件切换时,可以在 onIntermediateResults 回调中实时获取到识别结果,将识别结果与关键字进行匹配,匹配成功则展示对应课件。

其次,该系统利用通用文字识别,将课件上的古诗文字(原始课件是一张文字图片)识别出来,为后续语音播报提供语料。

最后,是AI语音播报,老师点击“阅读古诗”后,调用语音播报引擎的 speakText 接口对文字进行朗读。该系统在AI能力的加持下,使课堂更加智能,教学更加方便。

视频链接
运动健康

学习传感器的使用
HarmonyOS传感器是应用访问底层硬件传感器的一种设备抽象概念,开发者根据传感器提供的Sensor API,可以查询设备上的传感器,简化应用开发。

案例10利用手机和手表做了一个分布式运动健康的应用,这当中就使用了传感器中的Sensor API,在手机端展示通过手表上的传感器获取到的数据(心率、步数等),用户可以实时查看自己的身体情况,当心率出现异常的时候还可以对用户进行提醒,效果如下图所示。
::: hljs-center
DSC00010.gif

图11 分布式运动健康应用
:::
智能家居

学习设备控制
我们都知道HarmonyOS是一个万物互联时代的操作系统,是设备和设备之间交流的一种语言,在这一使命下,HarmonyOS最重要的一个典型应用场景就是智能家居。完整的开发一个智能家居,我们需要两个步骤,第一步开发手机端,第二步开发设备端

下面我们将就一个台灯的案例为大家展开介绍智能家居的完整开发流程。

首先是手机端的开发案例11是一个智能家居模板。开发者只需下载HUAWEI DevEco Studio,选择IDE中已经集成的智能家居模板(Device Control FeatureAbility),即可把台灯这个项目运行起来。

当然智能家居模板中还包括了牙刷和豆浆机,开发者可以根据业务需求,做一些简单配置即可运行。
::: hljs-center
DSC00011.png

图12 智能家居模板
:::
其次是设备端的开发, 要完成设备端的开发需要获取HarmonyOS认证模组,HarmonyOS技术支持团队会为设备厂商提供全套赋能套件,帮助你快速完成设备端的开发。案例12是一个无感配网的流程,可以实现手机和开发板的配网,这样手机下发的指令就可以在开发板上显示。
::: hljs-center
DSC00012.gif

图13 无感配网
:::
学会手机端和设备端的开发后,设备厂商就可以开发出自己的设备了,案例13是一个台灯案例,通过手机可以实现对台灯的操控,如调节开关、亮度等。
::: hljs-center
DSC00013.gif

图14 手机实现对台灯的操控
:::
通过以上七大场景的13个Codelabs案例,我们帮助大家快速了解HarmonyOS的UI框架、卡片开发、分布式、AI、传感器和设备控制等核心技术,这些案例已经陆续上线HarmonyOS Codelabs,欢迎大家学习。

● HarmonyOS Codelabs

https://developer.huawei.com/consumer/cn/codelabsPortal/index

想了解更多关于鸿蒙的内容,请访问:
51CTO和华为官方战略合作共建的鸿蒙技术社区
https://harmonyos.51cto.com/#bkwz

关注下面的标签,发现更多相似文章