AI 学习助手:基于 HarmonyOS ArkTS 的智能学习伴侣开发实践
AI 学习助手:基于 HarmonyOS ArkTS 的智能学习伴侣开发实践
本文基于 HarmonyOS 6.0 + ArkTS + DevEco Studio,从零构建一个覆盖六大学习场景的 AI 对话应用。涵盖 @State 响应式状态管理、@Builder 声明式组件化、router 多页面导航、三层架构设计,以及 AI 学习建议的体系化生成策略,适合鸿蒙应用开发者参考。

一、项目背景
学习是终身的事业,但大多数人从未系统学习过"如何学习"。费曼技巧、间隔重复、主动回忆——这些经科学验证的高效学习方法,大多数人只闻其名,不知其用。
本项目基于 HarmonyOS 6.0 平台,构建了一个 「AI 学习助手」 对话应用。应用集成了六大学习话题——记忆方法、考试备考、阅读笔记、学习规划、专注学习、知识整理——每个话题都基于认知心理学和学习科学的研究成果,提供可立即执行的行动方案。
鸿蒙特色亮点:
@Entry+@Component+@Builder声明式组件化 UI@State响应式状态驱动 UI 自动刷新router.pushUrl实现首页到聊天页的无缝导航ForEach+Scroll高性能渲染消息列表
二、核心架构
2.1 三层架构
entry/src/main/ets/
├── models/
│ └── XuexiModel.ets # 数据模型:消息、话题、学习计划
├── services/
│ └── XuexiService.ets # 业务服务:AI 回复、关键词匹配
└── pages/
└── XuexiPage.ets # UI 页面:聊天界面、话题栏、输入区
2.2 鸿蒙 ArkTS 装饰器速查
| 装饰器 | 作用 | 本应用中的使用 |
|---|---|---|
@Entry |
页面入口标记 | XuexiPage 作为独立路由页面 |
@Component |
自定义组件声明 | 所有 struct 结构体 |
@State |
响应式状态 | messages、inputText、isLoading、selectedTopic |
@Builder |
UI 构建器方法 | buildHeader()、buildTopicBar()、buildMessageBubble() 等 |
三、AI 服务层:六大学习话题的体系化回复
3.1 系统提示词设计
private systemPrompt: string =
'你是一个AI学习助手,精通认知科学、记忆方法、考试技巧和学习心理学。\n\n' +
'你的任务:\n' +
'1. 教授科学的记忆方法(间隔重复、联想记忆、费曼技巧等)\n' +
'2. 提供考试备考策略和时间规划\n' +
'3. 分享高效阅读和笔记方法\n' +
'4. 帮助用户制定个性化学习计划\n' +
'5. 提升学习专注力和克服拖延\n' +
'6. 知识整理与体系构建\n\n' +
'回答原则:\n' +
'- 科学依据:基于认知心理学和学习科学的研究成果\n' +
'- 可操作性:给出具体可执行的步骤,而非空洞理论\n' +
'- 个性化:根据学习者的特点和目标提供定制建议\n' +
'- 鼓励性:用积极的语言激励学习者,建立成长型思维'
3.2 六大话题内容结构
| 话题 | 核心方法论 | 特色内容 |
|---|---|---|
| 记忆方法 | 间隔重复 + 主动回忆 | 黄金复习间隔表、四大记忆技巧 |
| 考试备考 | 三轮复习法 | 基础→强化→冲刺,每轮具体策略 |
| 阅读笔记 | SQ3R 阅读法 + 康奈尔笔记 | 步骤拆解 + 模板示例 |
| 学习规划 | 艾森豪威尔矩阵 + 番茄钟 | 每日/每周规划模板 |
| 专注学习 | 番茄工作法 | 外部干扰管理 + 内部干扰管理 |
| 知识整理 | 思维导图 + 费曼技巧 | 知识体系构建步骤 |
每个话题的回复都包含"核心原理 → 具体步骤 → 可量化目标"三层结构,让用户从"知道"到"做到"。
四、鸿蒙 UI 组件化实现
4.1 组件树
XuexiPage (主页面)
├── buildHeader() # 标题栏:🧠 + "AI学习助手"
├── buildTopicBar() # 横向滚动话题标签
├── Scroll + ForEach # 消息列表
│ ├── buildMessageBubble() # 消息气泡(用户/助手)
│ └── buildLoadingBubble() # 加载中状态
└── buildInputArea() # 底部输入区
4.2 @State 驱动 UI 刷新
@State messages: ChatMessage[] = [] // 聊天记录 → ForEach 自动渲染
@State inputText: string = '' // 输入内容 → 发送按钮启用/禁用
@State isLoading: boolean = false // 加载状态 → 显示/隐藏加载气泡
@State selectedTopic: string = '' // 选中话题 → 高亮切换
4.3 发送逻辑:异步模拟 + 滚动优化
private onSend(): void {
// 1. 添加用户消息
this.messages.push(new ChatMessage(MessageRole.USER, text))
this.inputText = ''
this.isLoading = true
// 2. 延迟滚动到底部
setTimeout(() => { this.scroller.scrollEdge(Edge.Bottom) }, 200)
// 3. 1500ms 后返回 AI 回复(模拟思考延迟)
setTimeout(() => {
const reply = this.service.generateMockReply(text)
this.messages.push(reply)
this.isLoading = false
setTimeout(() => { this.scroller.scrollEdge(Edge.Bottom) }, 100)
}, 1500)
}
五、首页整合与路由导航
应用首页 [Index.ets](file:///c:/Users/l/DevEcoStudioProjects/MyApplication/entry/src/main/ets/pages/Index.ets) 通过 router.pushUrl 实现卡片点击跳转:
import { router } from '@kit.ArkUI'
.onClick(() => {
router.pushUrl({ url: 'pages/XuexiPage' })
})
路由注册在 [main_pages.json](file:///c:/Users/l/DevEcoStudioProjects/MyApplication/entry/src/main/resources/base/profile/main_pages.json):
{
"src": [
"pages/Index",
"pages/LvxingPage",
"pages/XuexiPage",
"pages/JiankangPage",
"pages/ShiCiChuangZuo"
]
}
设计要点: 每个页面有且仅有一个 @Entry 装饰器。main_pages.json 中注册的页面路径必须与文件路径一致。
六、橙黄色主题配色
| 用途 | 色值 | 语义 |
|---|---|---|
| 页面背景 | #FFF7ED |
暖橙白,活力而不刺眼 |
| 主色调 | #EA580C |
标准橙,代表活力、创造力、智慧 |
| 边框 | #FED7AA |
浅橙,柔和分隔 |
| 强调色 | #7C3AED |
紫色,与橙色对比,用于"清除"按钮 |
所有颜色定义为页面级 const 常量,独立于其他应用,互不干扰。
七、鸿蒙 + AI 核心亮点
亮点一:@State 响应式状态管理
ArkTS 的核心理念是"状态驱动 UI"。只需修改 @State 变量,框架自动触发 UI 重新渲染。本应用中的 4 个 @State 变量覆盖了消息列表、输入框、加载状态、选中态的完整交互闭环。
亮点二:@Builder 声明式组件化
@Builder 让 UI 逻辑从 build() 方法中抽离,每个 @Builder 方法对应一个独立 UI 区块。这使得代码结构清晰、可复用性高,新增组件只需添加新的 @Builder 方法。
亮点三:三层架构的跨项目复用
Model(数据定义)→ Service(业务逻辑)→ View(UI 渲染),职责清晰。四个 AI 应用的 View 层代码高度相似,只需替换 Service 和 Model 即可切换主题。
亮点四:AI 回复的体系化设计
每个话题的回复都遵循"核心原理 → 具体步骤 → 可量化目标"三层结构,不是泛泛而谈的"多学习",而是"第1周每天4个番茄钟,第2周每天6个番茄钟"这样可执行的目标。
亮点五:router 路由的多页面整合
通过 router.pushUrl 实现首页到聊天页的无缝跳转,用户无需切换 App,即可在同一应用中体验多个 AI 助手。
八、总结
AI 学习助手是 HarmonyOS ArkTS + 科学学习方法的完美结合。核心经验:
- @State + @Builder 是 ArkTS 的核心范式:状态驱动 UI,声明式描述界面
- AI 回复需要"可执行":不是讲道理,而是给步骤、给目标、给时间表
- 三层架构解耦:Model / Service / View 分离,降低维护成本
- router 路由整合:多 AI 应用共存于同一 App
- 配色独立管理:页面级常量,避免跨应用颜色污染
🧠 学习不是知识的堆砌,而是认知的重构。希望这篇文章能为你的鸿蒙 AI 应用开发提供一些启发。
更多推荐




所有评论(0)