鸿蒙版小小机器人APP现已开源,支持语音问答、天气查询、四则运算与诗词背诵。本文对比其与Android版本在存储、定位、网络、中文转拼音及音频语音模块的实现差异,提供源码地址与关键API说明,帮助开发者快速掌握鸿蒙原生能力并开展实战。
项目概述与源码获取
小小机器人APP最初基于Android实现,具备基础问答、天气查询、四则运算与唐诗宋词背诵等功能。随着《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版,该项目已完成鸿蒙版本改造并正式开源。鸿蒙版保持简洁界面,问题输入与答案输出均通过语音交互完成。
项目源码已托管至Gitee,与鸿蒙开发书籍第15章源码合并管理,开发者可直接访问以下地址获取完整工程:
https://gitee.com/aqi00/harmony/tree/main/chapter15

存储机制差异:SQLite、Preferences与resfile
鸿蒙与Android在数据存储与资源管理上存在显著差异,主要体现在以下三个方面:
- 关系数据库:两端均基于SQLite实现,用于保存用户自定义问答数据及初始导入的唐诗宋词记录。
- 键值对存储:Android使用SharedPreferences,鸿蒙采用Preferences,主要用于判断APP是否为首次运行。
- 文件处理:Android需将assets目录下的资源文件在运行时复制到沙箱目录后读取;鸿蒙将资源文件置于resfile目录,系统在安装后自动解压至沙箱路径,应用可直接读取,无需额外拷贝逻辑。
定位、网络与中文转拼音实现对比
在位置服务、网络请求与文本处理方面,鸿蒙原生能力更为完善,减少了对外部库的依赖:
- 定位服务:Android原生仅支持获取经纬度,需调用第三方接口进行逆地理编码;鸿蒙原生支持根据经纬度直接获取详细地址信息,省去额外接口调用。
- 网络服务:Android原生HttpURLConnection使用繁琐,通常依赖okhttp等第三方库;鸿蒙原生http模块已封装常见HTTP操作,开发者可直接调用,无需引入三方通信库。
- 中文转拼音:Android需引入pinyin4j库,鸿蒙需引入pinyin4js。该库用于将语音识别结果中的中文转为拼音,避免同音字导致诗词匹配失败。

音频播放与语音服务原生支持
鸿蒙在音频与语音处理方面提供原生模块,显著降低开发门槛:
- 音频播放:Android使用MediaPlayer,鸿蒙使用AVPlayer播放音频文件。
- 语音合成:Android原生文本转语音仅支持英文,中文合成需引入第三方SDK;鸿蒙原生提供基础语音服务,通过TextToSpeech模块即可实现中文文本转语音。
- 语音识别:Android原生不支持中文语音识别,必须依赖第三方SDK;鸿蒙原生提供SpeechRecognizer模块,可直接将中文语音转为文本输出。

开发建议与学习路径
鸿蒙版小小机器人APP仅需引入pinyin4js一个三方库,而Android版本需依赖多个外部库。鸿蒙原生能力覆盖了定位、网络、语音合成与识别等核心场景,开发者可避免大量三方库的学习与适配工作。
该项目适合作为鸿蒙开发入门与进阶的实战练习,涵盖多种鸿蒙开发技能,兼具实用性与趣味性。建议开发者结合DevEco Studio环境,参考第15章源码逐步实现语音交互、数据存储与网络请求等模块,快速掌握鸿蒙应用开发流程。
