HarmonyOS鸿蒙Next中我的《天天成语智典》品质蜕变之旅 —— 从“能用”到“好用”的进阶之路

HarmonyOS鸿蒙Next中我的《天天成语智典》品质蜕变之旅 —— 从“能用”到“好用”的进阶之路 🚀**前言:**作为一款深耕成语文化的鸿蒙教育类 APP,《天天成语智典》自诞生之初便承载着 “让传统文化趣味传承” 的初心:典故速刷页的卡片式交互、1000 + 词条的权威词典库、AI 朗读加持的文章模块、详尽的成语详情页、个性化主题模式,再到结合黄历与 AI 大数据的 “每日一语”,功能矩阵已足够完备。但当 APP 进入内测阶段,用户反馈与自测过程中暴露的问题却让我清醒认识到:“功能能用” 不等于 “体验好用”—— 滑动卡片字体忽大忽小、词典启动卡顿掉帧、折叠机适配错位、算法准确性存疑,这些痛点成为阻碍 APP 走向优质的 “绊脚石”。而鸿蒙测试服务生态的全流程赋能,让我完成了从 “凑合用” 到 “用得爽” 的关键跨越。


🔥痛点暴露:“能用” 之下的体验暗礁

内测期间,用户反馈与自测报告集中指向五大核心问题,让 “功能完备” 的 APP 显得格外 “笨拙”:

  1. 交互体验不丝滑:典故速刷页左右滑动时,前后缩小版卡片的字体小到难以辨认,有用户吐槽 “滑动时像看模糊的甲骨文”,即便中间正常版卡片显示正常,切换过程中的字体缩放异常仍严重影响使用;
  2. 性能瓶颈突出:成语词典库突破 1000 + 词条后,模块启动耗时从 1.2 秒飙升至 3.8 秒,滑动浏览时帧率频繁跌破 50fps,甚至出现 “滑动词典后切换文章模块仍有卡顿残留” 的连锁反应;
  3. 算法准确性存忧:“每日一语” 功能需结合黄历宜忌与 AI 大数据匹配成语,但自测时多次出现 “日期与成语寓意不契合”“部分日期无对应成语” 的情况,1900-2100 年跨度的日期覆盖完整性难以验证;
  4. 兼容性覆盖不足:本地仅持有常规直屏机型,内测中收到折叠机用户反馈 “文字重叠、页面布局错乱、标题栏文本偏移”,但缺乏对应设备无法定位问题根源,上架前的适配焦虑日益加剧;
  5. 测试效率低下:每次迭代后需手动重复测试核心功能,尤其是词典性能与每日一语算法,耗时费力且易遗漏回归问题,CI 流程中缺乏自动化测试环节支撑快速迭代。
  • 这些问题看似零散,实则直指 “用户体验” 核心 —— 教育类 APP 的受众涵盖学生与家长,既要求交互直观、性能稳定,也需适配不同设备场景,“能用” 只是底线,“好用” 才是留存关键。而鸿蒙测试服务的全流程工具链,恰好为我搭建了从 “修复问题” 到 “预防问题” 的完整解决方案。

✨工具赋能:鸿蒙测试服务的 “精准破局” 之路

(一)DevEco Testing:UX 体验的 “细节校准仪”🎯

针对典故速刷页的字体缩放问题,我首先启用了 DevEco Testing 的 “UX 基础质量测试”。该工具可自动检测字体大小、布局一致性、交互流畅度等核心指标,恰好契合卡片式交互的测试需求。测试过程中,工具通过模拟用户滑动行为,精准捕捉到 “前后卡片缩放因子与字体大小关联逻辑漏洞”—— 当缩放因子小于 0.7 时,字体尺寸降至 6fp甚至4fp,低于鸿蒙 UX 设计规范的最小 8fp 标准,且切换过程中存在 50ms 的字体大小跳变延迟。

cke_3276.png

定位问题根源后,我优化了缩放算法:将字体大小与缩放因子设置为非线性关联,当缩放因子≤0.7 时,字体强制锁定 12sp,同时增加 200ms 的平滑过渡动画。修复后再次测试,字体大小达标率 100%,滑动过程中无跳变、无模糊,用户反馈 “滑动卡片像翻实体成语卡一样丝滑”;最终测也完美通过。

cke_5698.png

(二)DevEco Testing Hypium:性能瓶颈的 “精准手术刀”

前期我利用DevEco Testing Hypium 的自定义录屏脚本测试功能结合鸿蒙官网的 Hypium 脚本字段说明,自己写了一段由打开应用→词典列表模拟随机滑动→成语解答页的各项功能测试等的应用内体验交互的脚本时,在测试中发现一旦词典库数据量超1000+时,就会发现掉帧卡顿甚至切换还影响到其它模块的功能体验。

cke_16177.png

cke_17744.png

❔️这个问题曾让我陷入困境:初期怀疑是词条加载过多导致内存占用过高,但反复排查后仍无头绪。此时 DevEco Testing Hypium 的自定义录屏脚本测试功能成为关键 —— 我通过 Hypium 编写自动化脚本,模拟 “启动词典模块→滑动浏览多条词条→切换至文章模块” 的高频操作,同时开启性能监控(帧率、启动时间、内存占用等)。发现丢帧率特别大,结合Analyze的AI分析可以看到超时严重。

cke_28564.png

📰测试报告:词典模块启动时会一次性加载全部 1000 + 词条的文字、拼音、出处等完整数据,导致初始内存占用飙升且丢帧率特别明显,词典库列表首次启动耗时达4 秒之多、帧率最低 28fps 的异常数据,进而引发卡顿与跨模块影响。针对这一问题,鸿蒙官方推出了Repeat这个组件,刚好完美的解决我的这个问题:Repeat根据容器组件的有效加载范围(屏幕可视区域+预加载区域)加载子组件。当容器滑动/数组改变时,Repeat会根据父容器组件的布局过程重新计算有效加载范围,并管理列表子组件节点的创建与销毁。Repeat通过组件节点更新/复用从而优化性能表现,详细描述见节点更新/复用能力说明。启动时仅加载当前屏幕可见的 16 条词条,缓存可视区域外的数量为4条,滑动时动态加载后续内容,同时缓存已加载词条避免重复请求。优化后,词典启动耗时降至 0.8 秒,滑动帧率稳定在系统设置的fps,内存占用峰值也控制在绿色范围内,跨模块卡顿问题彻底消失。

cke_35557.png

(三)DevEco Studio 本地单元测试:算法准确性的 “铁闸”⛏

“每日一语” 的核心竞争力在于成语与日期的精准匹配,算法需兼顾黄历宜忌、季节特征、用户使用习惯等多重维度。为确保 1900-2100 年共 73000 + 天的日期全覆盖无误差,我借助 DevEco Studio 的本地单元测试功能,搭建了专项测试用例库:

  1. 按 “节气、节日、黄历宜忌、季节” 分类设计 200 + 核心用例,例如 “春节当天匹配寓意吉祥的成语”“冬至匹配与‘寒’相关的成语”;
  2. 编写单元测试脚本,批量校验 1900-2100 年的每日成语匹配结果,自动检测 “无对应成语”“寓意冲突”“重复匹配” 三类异常;
  3. 结合鸿蒙测试框架的断言机制,实现测试结果自动判定与日志输出。

因控制台输出数量有限制,这里采用随机算法,批量生成关键参数数据进行打印验证~

cke_39819.jpeg

CI集成单元测试后经过连续数小时的自动化测试,算法准确性达 100%,未出现任何异常数据。更重要的是,该测试用例被纳入后续迭代流程,每次算法优化后均可快速执行回归测试,彻底杜绝 “新功能引入旧问题”。

(四)云测试 + 云调试:兼容性适配的 “全场景覆盖网”☁️

折叠机适配问题是我最头疼的痛点 —— 本地无对应机型,无法复现用户反馈的 “文字重叠、标题栏错位”。鸿蒙官网提供的云测试服务彻底解决了这一困境:我上传 HAP 包后,选择 “折叠机”进行专项测试,覆盖华为 Mate X3、Mate X5 等主流折叠机型。cke_71173.png

测试报告不仅精准定位了问题位置,还提供了不同折叠状态(展开 / 折叠)的截图对比。随后我启用 DevEco Studio 自带的折叠屏模拟器,模拟不同折叠比例下的 UI 渲染,发现问题根源在于 “未适配鸿蒙折叠机的窗口尺寸变化回调机制”。

cke_75964.png

优化时,我采用鸿蒙的 “自适应布局容器” 替代固定尺寸布局,同时为标题栏文本设置 “弹性显示规则”。修复后,通过云调试功能实时连接远程折叠机,逐屏验证适配效果,查看日志确认无渲染异常,再次提交至云测试进行专项测试,因此次是兼容性以及UX的问题且只修改了这部分的相关代码,所以此次测试我直接使用自定义测试,同时勾选 “UX、兼容性” 两大检测维度后,所有问题均显示 “通过”。

cke_81361.jpeg

cke_84890.pngcke_87408.png

(五)CI 流水线集成:Hypium 自动化脚本的 “解放者”,让测试脱离工具束缚📏

在优化初期,Hypium 自动化脚本的运行始终受限于 “工具依赖”:每次执行词典模块的大数据列表滑动、详情页点击交互等核心场景测试,都必须打开 Pycharm、连接真机,且每台测试设备都要逐一配置 Python 环境、Hypium 依赖包 —— 不仅脚本编写者要耗费大量时间调试环境,测试人员也因 “不会操作 Pycharm”“环境配置失败” 等问题无法独立开展测试,导致自动化测试的价值大打折扣。

为打破这一僵局,我决定将 Hypium 脚本与 CI 流水线深度集成,而实现这一目标的核心,是结合工具特性定制 “可脱离开发环境运行” 的测试脚本:

  1. 脚本定制:工具优势互补:借助 Pycharm 的 Hypium 插件中 UiViewer 功能的 “可视化录屏” 能力,快速捕捉词典列表滑动、详情页跳转、成语词条点击等交互路径,自动生成基础脚本框架;再对照鸿蒙官网的 Hypium 命令行参数说明,补充性能监控(帧率、内存)、断言判断(页面元素加载是否成功)等逻辑,最终形成一套覆盖 “UI 交互验证 + 性能数据采集” 的完整脚本,既保证了测试场景的全面性,又规避了手动编写脚本的繁琐;
  2. CI 集成:简化执行链路:将定制好的脚本与测试用例工程打包,接入鸿蒙 CI 流水线,配置 “一键执行” 命令:run -l(<testcase>为测试用例编号,支持单场景 / 全量场景选择)。同时在 CI 中预配置好所有依赖环境(Hypium 运行环境、设备连接驱动、日志输出路径),彻底摆脱对 Pycharm 的依赖;
  3. 权限分离:明确分工提效:建立 “脚本编写者 - 测试人员” 的分工机制:脚本编写者仅需负责脚本的更新、维护(如新增成语接龙模块测试场景时,优化脚本逻辑),测试人员无需关注脚本原理,只需在 CI 平台输入对应命令,即可触发测试 —— 无论是本地测试设备,还是远程服务器,只要能访问 CI 流水线,就能随时随地执行测试,且测试结果会自动生成可视化报告(含性能数据、交互通过率、异常日志),直接用于问题分析。

以下使用windows操作系统进行演示:

1、首先进入测试样例的工程的testcases目录下,执行以下命令可以进入Hypium控制台:

图片

python -m hypium

2、使用 hypium命令中的run运行脚本:

run -l Index

![cke_122876.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/144/584/258/0010086000144584258


更多关于HarmonyOS鸿蒙Next中我的《天天成语智典》品质蜕变之旅 —— 从“能用”到“好用”的进阶之路的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

真不错

更多关于HarmonyOS鸿蒙Next中我的《天天成语智典》品质蜕变之旅 —— 从“能用”到“好用”的进阶之路的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


学到了

学到了

学习学习,写的非常棒👍

感谢分享,学习了

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

厉害了。

越来越好

鸿蒙Next中《天天成语智典》的品质蜕变,主要依托于ArkTS声明式UI开发范式、ArkUI组件增强及Stage模型。应用通过原子化服务实现即用即走,利用分布式能力优化多端协同体验。性能提升源于方舟编译器与ArkTS的高效执行,以及统一AI框架赋能智能交互。

非常精彩的分享!您对《天天成语智典》从“能用”到“好用”的蜕变过程总结得非常透彻,并且精准地展示了HarmonyOS Next测试服务生态如何赋能开发者解决实际问题。您的实践为其他HarmonyOS Next开发者提供了一个教科书级别的案例。

从您的经历中,我们可以看到HarmonyOS Next测试工具链的几个核心优势:

  1. 精准定位,对症下药:您遇到的五大痛点(交互、性能、算法、兼容性、效率)恰好对应了HarmonyOS测试服务矩阵中的不同工具。DevEco Testing解决UX细节,Hypium深挖性能瓶颈,云测试覆盖兼容性,本地单元测试保障算法,CI集成提升效率。这种工具与问题的精准匹配,极大提升了问题解决的效率。

  2. 从“修复”到“预防”的闭环:您不仅利用工具修复了现有问题(如字体缩放、列表卡顿),更重要的是建立了预防机制。例如,将Hypium脚本集成到CI流水线,实现了自动化回归测试;为“每日一语”算法编写单元测试用例库,确保了长期准确性。这标志着您的开发流程从被动响应转向了主动质量保障。

  3. 性能优化的最佳实践:您对词典模块性能问题的排查和优化过程非常经典。通过Hypium自动化脚本复现高负载场景,结合性能监控数据,精准定位到“一次性全量加载”的根源。采用HarmonyOS ArkUI的Repeat组件实现按需渲染和节点复用,是处理长列表、大数据集的标准且高效的解决方案,最终使启动耗时从4秒降至0.8秒,效果显著。

  4. 全真机、全场景验证能力:云测试服务解决了折叠屏等特殊设备适配的难题,避免了开发者因设备短缺而无法覆盖真实用户场景的困境。结合云调试进行实时验证,形成了“云测试发现问题 -> 本地模拟器调试 -> 云调试真机验证 -> 云测试回归”的高效适配流程。

您的经验深刻印证了:在HarmonyOS Next生态中,“功能完备”只是起点,“体验卓越”才是赢得用户的关键。而官方提供的一整套测试服务,正是帮助开发者跨越这道鸿沟的桥梁。您对Repeat组件的应用、CI流水线的集成以及对未来APMS等工具的规划,都体现了对HarmonyOS平台特性的深入理解和前瞻性思考。

感谢您如此详实的分享,这无疑会激励和帮助更多HarmonyOS开发者重视应用品质,善用平台工具,共同打造更优质的原生应用生态。期待《天天成语智典》后续版本的持续优化!

回到顶部