姓名:钟志炜 学号:24020007172
姓名和学号?钟志炜,24020007172
本实验属于哪门课程?中国海洋大学26夏《移动软件开发》
实验名称?实验5:鸿蒙开发入门及计算器开发
代码仓库地址https://github.com/eureka137285/mobile_software_projects

一、实验内容

一、实验目的

  1. 掌握 DevEco Studio 开发环境的下载、安装与配置,学会创建鸿蒙模拟器,能够正常启动模拟器设备。
  2. 熟悉 ArkTS 工程创建流程,理解工程包名、SDK 版本、存储路径等配置规则,完成 HelloWorld 项目运行,验证开发环境可用性。
  3. 学习 ArkTS 声明式 UI 开发语法,理解@State状态装饰器、基础 UI 组件、按钮点击事件的工作原理。
  4. 完成简易计算器应用开发,实现数字输入、加减乘除运算、清零、退格等基础功能,并完成个性化创新修改,将程序编译运行在鸿蒙模拟器上。
  5. 掌握鸿蒙应用编译、推包、模拟器运行的完整流程,建立鸿蒙移动应用开发的基础认知。

二、实验步骤

步骤 1:DevEco Studio 环境安装
  1. 访问华为开发者官网下载最新版本 DevEco Studio,按照官方指引完成 IDE 安装,安装路径避免中文路径。

  2. 下载配套 SDK 组件,完成基础开发组件安装。

    SDK安装界面
步骤 2:创建本地鸿蒙模拟器
  1. 打开 DevEco Studio,点击主页“更多操作-设备管理器”,点击“新建模拟器”,下载设备系统镜像,配置模拟器内存、存储空间,完成模拟器创建。

步骤 3:创建 HelloWorld 项目验收环境
  1. 在欢迎页点击“新建项目”,选择Empty Ability`模板,创建 Application 类型工程。

  2. 填写工程信息:设置合法 Bundle 包名,工程保存路径不含中文,选择兼容 SDK 版本,设备类型勾选 Phone。

  3. 等待工程自动同步完成,点击Run > Run '模块名称',IDE 自动编译推包,确认 HelloWorld 程序成功在模拟器运行,验证整套开发环境可用。

步骤 4:简易计算器项目开发
  1. 新建鸿蒙 Application 工程,参考华为官方计算器 Codelabs 教程编写计算器页面代码,使用 Column、Row 布局搭建计算器界面,搭建显示屏、数字按钮、运算符按钮、清零、退格、等于按钮。
  2. 使用@State定义响应式状态变量,保存显示文本、操作数、运算符、输入状态;编写数字点击、运算符点击、清零、退格、计算结果的业务逻辑函数。
  3. 处理边界问题:防止重复输入小数点、处理除零异常、小数运算精度丢失问题。
  4. 进行个性化创新:修改按钮配色、字体大小,调整页面布局样式,优化交互体验。
  5. 预览调试代码,修正语法报错与逻辑 bug。
步骤5:编译运行测试
  1. 选中已经启动好的模拟器设备,点击运行按钮,IDE 执行编译构建,将应用推送到模拟器。

  2. 在模拟器打开计算器 APP,依次测试 0‑9 数字输入、加减乘除运算、清零、退格、连续运算、异常输入等场景,观察程序运行效果。并基于基础代码优化完善。

  3. 将完整项目代码提交至 Github 代码仓库。

三、实验结果

  1. DevEco Studio 安装完成,模拟器创建成功,可以正常启动,模拟器画面显示正常,无启动报错。

  2. HelloWorld 工程编译成功,应用正常部署到模拟器,页面正常显示文本,环境验收通过。

    HelloWorld效果
  3. 简易计算器 APP 成功运行在鸿蒙模拟器上:

    • UI 界面:顶部为结果显示屏,下方排布数字 0‑9、加减乘除、小数点、清零 C、退格、等于按钮;完成个性化样式修改,调整按钮颜色与页面间距。

    • 功能测试:可以正常输入数字,支持加减乘除四则运算;支持清零重置、退格删除输入;对重复小数点、除零错误做基础处理;计算结果可以正常回显到屏幕。

      计算器效果
  4. 项目实现普通计算器与科学计算器互换,科学计算器覆盖多种情况,经过边界测试没有测试错误。

    标准计算器界面 科学计算器界面
  5. 实现计算历史记录,实现全部删除、拖动单条删除,同一次计算步骤回退等功能。

    计算器效果
  6. 项目完整代码已经上传至指定 Github 仓库,代码可以正常拉取编译。

二、问题总结与体会

1.项目同步 Gradle 报错:新建工程后同步失败,项目组件加载不全,无法运行。

解决:网络问题导致依赖下载失败,配置国内镜像源,重启 IDE,重新执行项目同步。

2.包名格式报错:创建工程时填写的 Bundle name 格式不合法,工程无法创建。

解决:按照实验要求,包名使用点分隔,至少三段,不出现连续点号,不以数字开头,修改为符合规范的包名。

3.计算器逻辑 bug:连续输入小数点、小数计算精度丢失

解决:增加判断逻辑,检测显示屏已有小数点则禁止再次输入;小数运算将数值放大为整数运算,运算结束后再缩小,缓解浮点数精度丢失问题。

4.按钮点击无响应:忘记绑定按钮的onClick事件,点击按钮界面没有变化。

解决:为每一个按钮组件绑定 onClick 回调函数,触发对应业务处理函数。

二、体会

本次实验完成了鸿蒙开发环境搭建到计算器完整应用开发,我初步了解了 HarmonyOS 应用开发流程,熟悉 DevEco Studio 工具的基本操作。ArkTS 采用声明式 UI,配合@State装饰器实现数据驱动视图,和传统命令式 UI 开发思路有明显区别,数据改变自动刷新 UI,开发效率很高。

搭建环境阶段遇到不少环境配置、网络相关问题,明白了移动开发中环境配置是实验成功的前提。计算器开发不只是界面布局,运算逻辑、边界异常处理同样很关键,要考虑用户的各种异常输入场景。

通过本次实验,我掌握鸿蒙应用从创建、编码、调试、编译到模拟器运行的完整流程,对 ArkTS 语法、组件、状态管理有了实践理解,为后续更加复杂的鸿蒙应用开发打下基础。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐