学习笔记结构化 —— AI 知识整理助手,鸿蒙原生应用深度解析
2026/7/10 7:56:05 网站建设 项目流程

学习笔记结构化 —— AI 知识整理助手,鸿蒙原生应用深度解析

一、引言

在学习过程中,我们常常会积累大量零散的笔记——课堂随记、阅读摘抄、灵感碎片……这些笔记虽然有价值,但相互之间缺乏关联,难以形成系统的知识体系。学习笔记结构化这款鸿蒙原生 AI 应用,正是为解决这一问题而生:用户只需粘贴零散笔记,输入学科名称,AI 即可自动生成包含知识框架、重点内容和记忆锚点的结构化输出。

本文将从架构设计、鸿蒙技术深度解析、AI 亮点、技术挑战与用户体验设计五个维度,全面剖析这款应用的技术实现。

二、应用架构设计

2.1 整体架构

应用采用MVS(Model-View-Service)三层架构:

  • Model 层(NoteStructModel.ets):定义FrameworkEntry(框架条目)、NoteData(笔记结构化数据)、NSMessage(消息记录)和NS_WELCOME(欢迎语)等。
  • View 层(NoteStructPage.ets):基于@Component的声明式 UI,包含TextArea笔记输入区、TextInput学科输入区、Scroll结果展示区。
  • Service 层(NoteStructService.ets):封装 AI 知识整理引擎,根据笔记内容和学科返回结构化的知识框架。

2.2 数据流

用户粘贴零散笔记 → @State bigText 更新 用户输入学科名称 → @State subjectText 更新 点击"生成框架" → 调用 service.getNoteStruct() Service 返回 NoteData → @State currentData 更新 @Builder 框架层级展示

三、鸿蒙技术深度解析

3.1 @State + TextInput 学科输入

本应用与其他应用的不同之处在于使用了TextInput组件来接收学科输入:

@StatesubjectText:string=''Row(){Text('📖 学科名称(可选)').fontSize(14).fontColor(COLOR_TEXT_SEC)Blank()}.width('100%').padding({left:16,top:4})TextInput({text:this.subjectText,placeholder:'输入学科名称,如:中国历史、高中数学...'}).fontSize(14).fontColor(COLOR_TEXT).placeholderColor(COLOR_TEXT_SEC).backgroundColor(COLOR_CARD).borderRadius(12).border({width:1,color:COLOR_BORDER}).padding(12).margin({left:16,right:16,top:4,bottom:8}).onChange((val:string)=>{this.subjectText=val})

TextInput vs TextArea 的选择

  • 学科名称是单行输入,使用 TextInput 更合适
  • 笔记内容是多行输入,使用 TextArea
  • 两种输入组件的合理搭配体现了 ArkTS 组件选择的灵活性

3.2 @Builder 框架层级展示

@BuilderbuildResultCard(data:NoteData){Column(){// 知识框架 - 紫色if(data.framework.length>0){Column(){Text('🏗️ 知识框架').fontSize(14).fontWeight(FontWeight.Bold).fontColor(COLOR_PRIMARY)// #6366F1ForEach(data.framework,(entry:FrameworkEntry)=>{Column(){Row(){Text('📌').fontSize(16)Text(entry.topic).fontSize(15).fontWeight(FontWeight.Bold)}ForEach(entry.sub,(subItem:string)=>{Row(){Text(' ↳').fontSize(13).fontColor(COLOR_TEXT_SEC)Text(subItem).fontSize(13).fontColor(COLOR_TEXT_SEC)}})}.backgroundColor('#EEF2FF').borderRadius(12).margin({bottom:8})})}.border({width:1,color:COLOR_BORDER})}// 重点 - 黄色if(data.key_points.length>0){Column(){Text('⭐ 重点').fontColor('#F59E0B')ForEach(data.key_points,(point:string)=>{Row(){Text('•').fontColor('#F59E0B')Text(point)}})}.border({width:1,color:'#FDE68A'})}// 记忆锚点 - 绿色if(data.memory_hooks.length>0){Column(){Text('🧠 记忆锚点').fontColor('#16A34A')ForEach(data.memory_hooks,(hook:string)=>{Row(){Text('•').fontColor('#16A34A')Text(hook)}})}.border({width:1,color:'#BBF7D0'})}}}

框架层级展示设计

框架条目使用了两层嵌套的ForEach渲染:

一级主题 (topic) ↳ 二级子项 (sub[0]) ↳ 二级子项 (sub[1]) ↳ 二级子项 (sub[2])

这种树形结构的视觉呈现让用户一眼就能理解知识的层级关系。

3.3 Flex + ForEach 学科自适应

本应用不使用Flex选项选择,而是使用TextInput自由输入学科。Service 层通过关键词匹配实现学科自适应:

constkey=(notes.toLowerCase()+' '+subject.toLowerCase()).trim()if(key.includes('历史')||key.includes('history')||key.includes('朝代')){// 返回历史学科的框架}if(key.includes('数学')||key.includes('math')||key.includes('函数')||key.includes('几何')){// 返回数学学科的框架}// 默认:通用框架

这种设计支持无限学科的扩展,而不仅限于预设选项。

3.4 Scroll 结果容器

if(this.currentData!==null){Scroll(){Column(){this.buildResultCard(this.currentData)}.padding({bottom:20})}.layoutWeight(1).scrollBar(BarState.Off)}

3.5 条件渲染

// 按钮条件:仅需笔记非空(学科可选)if(this.bigText!==''){Text('生成框架').onClick(()=>{this.onGenerate()})}

与其他应用不同,本应用的"生成框架"按钮只需要笔记内容非空,学科名称是可选的。这种设计降低了使用门槛,即使用户不输入学科名称,AI 也能通过笔记内容推断学科并生成合适的框架。

四、AI 应用亮点分析

4.1 零散笔记 → 层级框架重构

这是本应用最核心的 AI 能力。零散的笔记条目(如独立的日期、事件、概念)被自动归类整理为层级化的知识框架。

以历史学科为例,零散的笔记如"夏朝建立于约公元前 2070 年"、“秦始皇统一六国”、"三省六部制"等会被 AI 整理为:

一、朝代更迭主线 ↳ 夏商周→秦汉→三国两晋南北朝→隋唐→宋元明清 ↳ 重要转折点:秦统一、隋统一、元统一 二、重要制度变革 ↳ 分封制→郡县制→三省六部制→行省制 ↳ 科举制度的发展演变 三、重大历史事件 ↳ 统一战争:秦灭六国、隋灭陈 ↳ 改革变法:商鞅变法、王安石变法

4.2 记忆锚点 / 口诀生成

AI 不仅能整理知识框架,还能生成记忆锚点和口诀,帮助用户更高效地记忆:

  • 朝代歌:“夏商与西周,东周分两段,春秋和战国,一统秦两汉……”
  • 数学口诀:“一半平方,加减常数”(配方法口诀)
  • 首字母法:将关键词首字母组成有意义的短语

这些记忆技巧将抽象的知识转化为易记的形式,大大提升了学习效率。

4.3 学科自适应

AI 能够根据笔记内容和学科名称自动判断学科类型,并生成对应的知识框架:

学科框架结构重点内容记忆锚点风格
历史朝代更迭、制度变革、重大事件朝代顺序、制度演变逻辑朝代歌、历史时间轴
数学函数与方程、几何与图形、概率与统计核心公式、解题方法口诀记忆、手指记忆法
通用核心概念、方法与应用、拓展延伸知识脉络、重点难点类比记忆、费曼学习法

4.4 从信息到知识的转化

AI 实现了从"信息收集"到"知识建构"的跃迁:

  • 输入:零散的、无序的笔记碎片
  • 处理:AI 分析内容关联性,按主题归类,建立层级关系
  • 输出:结构化的知识框架 + 重点标识 + 记忆方法

这正是"知识管理"的核心——让离散的信息通过结构化转化为可用的知识

五、关键技术挑战与解决方案

5.1 挑战一:零散笔记的自动分类

问题:用户的笔记内容可能涉及多个主题,AI 需要自动识别并分类。

解决方案:Service 层通过关键词匹配进行主题识别,将相关内容归类到对应的框架条目下。真实场景中可接入大模型进行语义理解,实现更精准的分类。

5.2 挑战二:层级深度的控制

问题:知识框架的层级深度需要适中,太浅不够详细,太深又显得冗余。

解决方案:统一采用"两级层级"(主题 → 子项),每个主题最多包含 3 个子项。这种结构既保证了足够的粒度,又避免了信息过载。

5.3 挑战三:记忆锚点的个性化

问题:不同学科的记忆方法不同,需要个性化的记忆锚点生成策略。

解决方案:针对不同学科类型,预设不同的记忆锚点生成策略:

  • 历史 → 时间轴记忆、朝代歌
  • 数学 → 口诀记忆、公式推导
  • 通用 → 首字母法、类比记忆、费曼学习法

六、用户体验设计

6.1 视觉设计

  • 沉稳紫色系:以 #EEF2FF 为主背景色,搭配 #6366F1 主色,传达知识沉淀的品牌感受
  • 树形层级展示:使用 📌 标记主题、↳ 标记子项,视觉上呈现树形结构
  • 三段式输出:知识框架 → 重点 → 记忆锚点,信息密度递减

6.2 交互设计

  • 双输入设计:TextArea(笔记)+ TextInput(学科),满足不同输入需求
  • 学科可选:降低使用门槛,不输学科也能生成通用框架
  • 一键重置:清空所有输入

6.3 学习体验设计

  • 框架条目采用浅紫色背景 (#EEF2FF),在白色卡片中突出显示
  • 重点内容使用 ⭐ 标记,便于复习时快速定位
  • 记忆锚点提供可直接使用的记忆方法

七、总结

学习笔记结构化应用通过鸿蒙原生技术栈,实现了一款强大的 AI 知识整理工具。在技术层面,@State+TextInput的自由输入设计、@Builder树形层级框架展示、ForEach嵌套渲染,展现了鸿蒙 ArkTS 在处理复杂数据结构时的优势。在 AI 层面,零散笔记 → 层级框架重构、记忆锚点/口诀生成、学科自适应,体现了 AI 在教育学习领域的巨大潜力。

这款应用的核心价值在于:将学习从"被动接收信息"转变为"主动建构知识"。它不仅仅是笔记整理工具,更是学习方法的赋能者,帮助用户建立系统化的知识体系。


技术栈:HarmonyOS ArkTS · 声明式 UI · @State · @Builder · TextArea · TextInput · Flex · ForEach · Scroll

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询