鸿蒙版本的小小机器人APP开放源码啦

简介: 笔者将安卓版“小小机器人”APP成功迁移至鸿蒙HarmonyOS 6,实现语音问答、天气查询、四则运算、诗词朗诵等功能。相比安卓需多个第三方库,鸿蒙原生支持定位、网络、语音合成与识别等能力,仅需引入pinyin4js即可,显著降低开发门槛,是入门鸿蒙开发的优质实战项目。

时下各种AI聊天应用争奇斗艳,一个比一个智能,一个比一个贴心。早在2022年出版的《Android Studio开发实战:从零基础到App上线(第3版)》中,笔者就基于Android实现了一个具备初级智能的小小机器人APP,不仅支持简单的问答,还支持问询天气预报,还支持加减乘除四则运算,还支持背诵唐诗宋词名篇佳句,可谓小朋友的贴心玩伴。

《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》一书作为《Android Studio开发实战:从零基础到App上线(第3版)》的鸿蒙姊妹篇,已将安卓一书的大部分实战项目改造为鸿蒙版本。但在写作鸿蒙一书时,限于时间进度与项目难度,安卓一书的小小机器人项目未能同步改造为鸿蒙版本,成为鸿蒙一书的小小缺憾。

好在笔者并未放弃,在《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版之后,一直记得小小机器人的鸿蒙改造事宜。磨磨蹭蹭大半年,终于把安卓版本的小小机器人APP一步步改造成了鸿蒙APP,机器人APP的项目源码与鸿蒙一书的第15章源码放在了一起,具体的源码托管地址为 https://gitee.com/aqi00/harmony/tree/main/chapter15

图15-21.jpg

小小机器人的鸿蒙APP仍然有着简洁的界面,问题输入与答案输出都靠语音交互,但在具体的代码实现上,鸿蒙版本与安卓版本有着诸多不同之处,比如存储方面存在下列区别:

1、对于关系数据库,鸿蒙APP与安卓APP都基于SQLite实现,主要用于保存和读取用户自定义的问答信息,还要保存初始导入的唐诗宋词记录。

2、对于键值对存储,安卓APP采用共享参数SharedPreferences,而鸿蒙APP采用首选项Preferences,主要用于判断机器人APP是否为首次运行。

3、对于文件处理,安卓APP把资源文件放在APP工程的assets目录下,APP运行时要先把assets文件传到沙箱目录,再读取沙箱目录下的资源文件;而鸿蒙APP把资源文件放在APP工程resfile目录下,鸿蒙系统支持在应用安装后自动解压到沙箱路径下,APP可直接读取自动解压后的资源文件。

又如,在定位服务、网络服务、中文转拼音方面,鸿蒙版本与安卓版本存在下列区别:

1、对于定位服务,安卓APP原生仅支持获取当前位置的经纬度信息,若想获取当前位置的详细地址,则需另外调用第三方接口把经纬度转换为地址信息;而鸿蒙APP不仅原生支持获取当前位置的经纬度信息,还支持根据经纬度直接获取对应的地址信息,从而省去了第三方的地址查询接口调用。

2、对于网络服务,安卓APP原生的HttpURLConnection用起来甚是繁琐,往往要调用第三方的网络通信库比如okhttp;而鸿蒙APP原生的http模块已经把常见的HTTP访问操作封装好了,开发者可直接进行接口调用,无需引入三方通信库。

3、对于中文转拼音:安卓APP需引入第三方的pinyin4j库,而鸿蒙APP也需引入三方库pinyin4js,后者相当于前者的鸿蒙平替三方库。

图15-27.jpg

在朗诵诗歌之前,机器人通过诗人姓名与诗歌标题确定是哪一首唐诗宋词,但语音识别的结果文本可能存在同音字,为了避免同音字造成条件匹配失败,可先将中文转换成拼音,再通过拼音判断是否匹配。

再如,在音频播放、语音合成、语音识别等方面,鸿蒙版本与安卓版本存在下列区别:

1、对于音频播放,安卓APP通过原生的MediaPlayer来播放音频文件,而鸿蒙APP通过原生的AVPlayer来播放音频文件。

2、对于语音合成,安卓APP原生的文本转语音仅支持英文,通常要引入第三方的语音SDK才能把中文文本合成为语音输出;而鸿蒙APP原生提供了基础语音服务,可直接通过TextToSpeech模块来实现中文文本的语音合成功能。

3、对于语音识别,安卓APP原生不支持,必须引入第三方的语音SDK才能把中文语音识别为文本输出;而鸿蒙APP原生提供了基础语音服务,可直接通过SpeechRecognizer模块来实现中文语音的文本识别功能。

鸿蒙应用开发2.jpg

根据上述说明可知,鸿蒙系统在实现小小机器人APP时,仅需引入一个三方库pinyin4js,对应的安卓系统实现机器人APP时要引入多个三方库,无疑鸿蒙APP避免了其他三方库的学习和适配工作。

如果您想入门鸿蒙APP开发,或者正在学习鸿蒙开发,小小机器人都是很好的学习项目,不仅用到了多种鸿蒙开发技能,而且兼具实战性和趣味性,对开发者快速掌握鸿蒙开发具有很大的帮助。

目录
相关文章
|
Java Maven
IDEA 2021 整合 SSM 配置离线 Maven 3.8.1 报错大全 Since Maven 3.8.1 http repositories are blocked.
IDEA 2021 整合 SSM 配置离线 Maven 3.8.1 报错大全 Since Maven 3.8.1 http repositories are blocked.
8330 0
IDEA 2021 整合 SSM 配置离线 Maven 3.8.1 报错大全 Since Maven 3.8.1 http repositories are blocked.
|
人工智能 搜索推荐 Apache
Agent六款开源记忆工具大横评——全都能本地跑,全都不花钱
AI 编程助手每次开新会话就"失忆"?六款完全开源、免费、可本地部署的记忆扩展工具——agentmemory、QMD、Cognee、mem0、Zep、TencentDB Agent Memory,覆盖行为记忆、文档检索、知识图谱、时序感知四大能力。从零干预自动捕获到 Markdown 知识库搜索,再到多跳关系推理,帮你给 Hermes / OpenClaw 装上一套完整的持久记忆系统
1135 0
Agent六款开源记忆工具大横评——全都能本地跑,全都不花钱
|
Ubuntu Linux 开发工具
Ubuntu系统开发环境搭建和常用软件
Ubuntu系统作为一款优秀的开源Linux发行版,为开发者提供了强大的开发环境和丰富的软件资源。通过本文的介绍,相信读者已经对Ubuntu系统开发环境的搭建和常用软件有了一定的了解。在实际开发中,可以根据自己的需求进行选择和调整,以提高开发效率和体验。同时,随着Ubuntu系统的不断更新和发展,未来还将有更多优秀的软件和功能可供使用。
|
Java Linux
手把手教你Linux系统下的Java环境配置,简单到不行!
手把手教你Linux系统下的Java环境配置,简单到不行!
1750 1
|
存储 缓存 Docker
docker: No space left on device处理与迁移目录
通过以上方法,可以有效地管理 Docker 的磁盘使用情况,并确保 Docker 运行环境的稳定性和效率。
1793 34
|
Linux
Debian下载ISO镜像的方法
步骤 1:访问Debian官方网站 打开你的网络浏览器,在地址栏中输入 https://www.debian.org/ 并回车,这将带你到Debian的官方网站。
3299 6
Debian下载ISO镜像的方法
IDEA 自定义注解(类注释、方法注释)
IDEA 自定义注解(类注释、方法注释)
7488 1
IDEA 自定义注解(类注释、方法注释)
|
存储 Kubernetes API
k8s学习-ConfigMap(创建、使用、更新、删除等)
k8s学习-ConfigMap(创建、使用、更新、删除等)
4230 0
|
算法 Java 测试技术
mybatis-plus雪花算法生成Id使用详解
mybatis-plus雪花算法生成Id使用详解
6321 0
mybatis-plus雪花算法生成Id使用详解
|
Linux KVM 虚拟化
windwos上通过qemu直接开启img、qcow2等格式磁盘镜像(无需转vmdk)
QEMU 是一款开源虚拟化软件,支持多种硬件平台和虚拟化技术,如 KVM 加速。它可以在 Windows、Linux 和 macOS 上运行。本文介绍了 QEMU 的下载、安装、配置虚拟网卡、启动虚拟机、网络通信及快照管理等步骤。通过 QEMU,用户可以轻松创建和管理虚拟机,实现高效的开发和测试环境。
8414 0
windwos上通过qemu直接开启img、qcow2等格式磁盘镜像(无需转vmdk)

热门文章

最新文章