鹿鹿·笔迹心理分析 — 鸿蒙应用开发实战系列

前言

欢迎来到"鸿蒙 NEXT 应用开发实战"百篇系列!本系列以真实项目 “鹿鹿·笔迹心理分析” 为蓝本,从零到一覆盖 HarmonyOS NEXT 原生 App 开发的完整知识体系。

与其他碎片化教程不同,本系列:

  1. 所有代码均来自真实项目源码,可直接运行
  2. 每篇遵循 功能介绍 → API 讲解 → 核心代码演示 → 设计要点 四段结构
  3. 覆盖从 ArkTS 语法、ArkUI 组件、Canvas 绘图、RDB 数据库到端侧 AI 推理的完整链路
  4. 同步发布到 CSDN 鸿蒙开发专栏,持续更新

系列源码仓库:harmony-app(GitHub)
华为开发者官网:developer.huawei.com

鹿鹿·笔迹心理分析 HarmonyOS NEXT 应用全流程架构示意图

图:鹿鹿应用三层架构全景——UI 表现层(19 个页面)→ 业务功能层(DAO + AI)→ 系统能力层(HarmonyOS Kit)


一、项目简介

1.1 产品定位

"鹿鹿·笔迹心理分析"是一款 HarmonyOS NEXT 原生 AI 工具应用

  • 核心理念:手写笔迹蕴含情绪与人格信息,通过 AI 解读帮助用户认识自己和伴侣
  • 隐私策略:所有 AI 推理全部端侧执行,数据永不上传,保护用户隐私
  • 目标用户:对心理学/自我探索感兴趣的用户,以及情侣关系维护场景

1.2 核心功能清单

  1. 笔迹采集:支持相机拍照、相册选择、手写板三种输入方式
  2. AI 分析:OCR 文字识别 → 6 维手写特征提取 → 多模态人格分类
  3. 分析报告:6 维雷达图、情绪能量值、人格类型标签、AI 综合解读
  4. 档案管理:按人分组管理历史分析记录,支持子标签过滤
  5. 情绪趋势:30 天情绪能量折线图 + 关键词云 + AI 月度小结
  6. 双人合盘:NFC 碰一碰绑定伴侣,生成双人匹配度报告
  7. 分享功能:雷达图 + 2×2 Grid 海报,支持系统 pasteboard 分享
  8. 元服务卡片:桌面负一屏 2×2/2×4/4×4 三种尺寸快速查看

1.3 用户核心流程

拍照

手写

未绑定

已绑定

登录/注册

首页

输入方式

CapturePage

WritePage

AnalyzingPage
分析中

ReportDetailPage
报告详情

ArchivePage
归档管理

SharePage
分享

TrendPage
情绪趋势

伴侣绑定

BindRelationPage
NFC 碰一碰

CoupleHomePage
双人空间

DuetReportPage
合盘报告


二、技术栈全景

2.1 开发环境与框架

类别 技术方案 文档链接
开发工具 DevEco Studio 5.0 官网下载
目标平台 HarmonyOS NEXT(API 12+) 开发指南
应用模型 Stage 模型 Stage 模型简介
开发语言 ArkTS ArkTS 语言介绍
UI 框架 ArkUI(声明式 UI) ArkUI 开发指南

2.2 核心 Kit 一览

Kit 导入路径 用途
AbilityKit @kit.AbilityKit UIAbility、common 上下文、Want 路由
ArkUI Kit @kit.ArkUI window 窗口设置
CameraKit @kit.CameraKit 相机采集
CoreFileKit @kit.CoreFileKit fileIo 文件读写
MediaLibraryKit @kit.MediaLibraryKit 相册访问
BasicServicesKit @kit.BasicServicesKit pasteboard 剪贴板
PerformanceAnalysisKit @kit.PerformanceAnalysisKit hilog 日志
DataRelationalStore @ohos.data.relationalStore RDB 本地数据库
MindSpore Lite @mindspore/lite(预留) 端侧 AI 推理

三、架构分层

3.1 三层架构总览

读写

同步

调用

写入

跨层通信(AppStorage 11 个键)

user_id · user_token · capture_image_path
analysis_result · current_report_id
couple_bound 等

AI 引擎层(~1,200 行)

features/ai/
OcrService · HandwritingFeatureExtractor
EmotionClassifier · AiPipelineService

业务数据层(~900 行 · 5 DAO)

features/data/
UserDao · ArchiveDao · HandwritingDao
ReportDao · RelationDao · DatabaseService

UI 层(~8,500 行 · 19 页面 + 6 组件)

pages/ 19个页面
HomePage / CapturePage / AnalyzingPage
ReportDetailPage / ArchivePage / TrendPage
CoupleHomePage / BindRelationPage 等

common/components/
HandwritingRadar · EmotionTrendChart
MatchRing · HmTitleBar · PosterTemplate

common/theme/
AppColors · AppFonts · AppAnimations

3.2 数据库设计

has

contains

generates

binds

USER

int

id

PK

string

open_id

string

name

string

avatar

int

created_at

ARCHIVE

int

id

PK

int

user_id

FK

string

name

string

relation

int

record_count

int

created_at

HANDWRITING

int

id

PK

int

archive_id

FK

string

image_path

string

source

int

created_at

REPORT

int

id

PK

int

handwriting_id

FK

string

personality_type

int

energy_score

string

keywords

int

created_at

RELATION

int

id

PK

int

user_id

FK

int

partner_id

FK

string

bound_method

int

created_at


四、模块路线图(100 篇)

4.1 文章分布总览

模块 文章编号 主题 篇数
环境搭建与项目初始化 01-06 DevEco Studio、Stage 模型、配置文件、路由、目录规范 6
ArkTS 语言核心语法 07-12 类型系统、类、异步编程、@kit 包、装饰器、@Watch 6
ArkUI 基础组件 13-18 布局、Text、Button、Circle、ForEach、Scroll 6
自定义组件 19-23 HmTitleBar、EmptyState、PosterTemplate、@Builder、生命周期 5
RDB 关系型数据库 24-33 初始化、表设计、版本升级、Predicates、CRUD、DAO、播种 10
Camera Kit 与媒体 34-38 相机开发、权限、PhotoViewPicker、fileIo 5
近场通信与分享 39-43 NFC、二维码、pasteboard、短距通信汇总 5
Canvas 高级绘图 44-51 Canvas 基础、雷达图三篇、折线图、圆环图、动画、双色雷达 8
AI 端侧推理 52-57 流水线架构、MindSpore Lite、OCR、特征提取、情绪分类、rawfile 6
动画系统 58-63 animateTo、入场动画、PageTransition、按压、呼吸、动画常量 6
NFC Kit 与分享 Kit 64-66 NFC Kit、pasteboard、二维码分享链路 3
主题与设计令牌 67-71 AppColors、AppFonts、渐变、阴影、导航栏 5
状态管理 72-76 AppStorage、@State、路由参数、getUIContext、Toast 5
核心业务页面 77-98 19 个页面完整代码拆解 22
项目总结与展望 99-100 设计模式回顾、全栈回顾与演进 2

4.2 页面列表(19 个)

本系列覆盖 App 全部 19 个页面:

  • 登录系统:LoginPage(华为一键)、PhoneLoginPage(手机验证码)
  • 核心闭环:HomePage、CapturePage、WritePage、AnalyzingPage、ReportDetailPage
  • 数据管理:ArchivePage、TrendPage、MePage、UnclassifiedArchivePage
  • 双人空间:CoupleHomePage、DuetReportPage、BindRelationPage
  • 分享社交:SharePage、TapSharePage
  • 轻量入口:FormCardsPreview、EmptyPage、MetaServiceCard

五、前置要求

学习本系列,你需要具备:

  • 基础的 TypeScript 语法知识(类、接口、async/await)
  • 了解移动端应用开发的基本概念(页面路由、组件化、数据持久化)
  • 一台安装了 DevEco Studio 5.0 的开发机器(macOS / Windows)

推荐参考文档


六、项目代码统计

目录 行数 占比 说明
pages/(19 个页面) ~8,500 63% 业务页面 ETS 文件
features/ai/(AI 流水线) ~1,200 9% OCR + 特征提取 + 分类
common/components/(6 组件) ~1,000 8% 雷达图等可复用组件
common/theme/(3 主题文件) ~600 5% 颜色/字体/动画令牌
features/data/(5 DAO + DB) ~900 7% 数据访问层
配置 + Ability + NFC ~800 6% 入口、配置、NFC
合计 ~13,000 100% 约 50 个 .ets 文件

七、AI 端侧推理架构

7.1 推理流水线设计

"鹿鹿"的 AI 能力完全运行在设备端,采用三段式串联流水线:

6维特征

笔迹图片

OcrService
OCR文字识别

HandwritingFeatureExtractor
手写特征提取

EmotionClassifier
情绪分类推理

AnalysisResult
分析结果

能量场/思维轴
行动力/情绪值
社交力/细节感

7.2 端侧推理的优势

采用端侧推理而非云端推理,具备以下核心优势:

  • 隐私保护:用户手写内容永远不离开设备,符合国内数据安全合规要求
  • 低延迟:无网络往返,分析速度更快
  • 离线可用:无需联网即可完成分析
  • 零服务成本:无 API 调用费用,用户体验免费

关键技术:MindSpore Lite 是华为面向端侧推理的轻量级 AI 框架,支持 .ms 格式模型文件,适合在鸿蒙设备上运行。

7.3 推理相关文件

文件 功能
AiPipelineService.ets 统一推理流水线入口,管理三个 AI 服务的生命周期
OcrService.ets 基于 MindSpore Lite 的手写文字识别
HandwritingFeatureExtractor.ets 提取书写压力、斜度、间距等 6 维特征
EmotionClassifier.ets 多模态情绪分类,输出人格类型和能量分

八、快速导航与学习路径

8.1 按技术方向导航

不同背景的读者可以选择不同的阅读路径:

路径 A:完全新手(从 0 开始学鸿蒙)

  1. 第 01 篇:环境搭建
  2. 第 02-06 篇:Stage 模型与项目结构
  3. 第 07-12 篇:ArkTS 核心语法
  4. 第 13-19 篇:ArkUI 基础组件

路径 B:有 TypeScript 经验(快速上手)

  1. 第 01 篇:环境搭建(仅了解 DevEco Studio 差异)
  2. 第 11-12 篇:ArkTS 装饰器(鸿蒙特有语法)
  3. 第 13-19 篇:ArkUI 布局
  4. 直接跳到第 77-98 篇:页面实战

路径 C:数据库专项

  1. 第 24-33 篇:RDB 完整链路

路径 D:AI 推理专项

  1. 第 52-57 篇:端侧 AI 推理完整方案

8.2 核心文章推荐

如果时间有限,以下 10 篇是最值得优先阅读的核心文章:

优先级 文章编号 主题 理由
⭐⭐⭐ 第 02 篇 Stage 应用模型 鸿蒙开发的根基
⭐⭐⭐ 第 11 篇 ArkTS 装饰器 声明式 UI 的核心语法
⭐⭐⭐ 第 13 篇 ArkUI 布局系统 几乎每个页面都需要
⭐⭐⭐ 第 24 篇 RDB 数据库入门 本地存储必备
⭐⭐⭐ 第 72 篇 AppStorage 全局状态 跨页面通信核心
⭐⭐ 第 34 篇 Camera Kit 拍照功能
⭐⭐ 第 52 篇 AI 推理架构 端侧 AI 特色功能
⭐⭐ 第 44 篇 Canvas 基础 自定义绘图
⭐⭐ 第 77 篇 首页完整代码 综合实战
第 100 篇 全栈总结 复习与展望

九、约定与说明

本系列所有代码遵循以下约定:

  1. 代码路径标注:每篇文章均标注完整的源文件路径(如 entry/src/main/ets/pages/ArchivePage.ets
  2. 调试-生产双模式:HMS Account Kit / MindSpore Lite 等生产 API 以注释形式保留,解注释即可在真机运行
  3. 版本说明:代码基于 HarmonyOS NEXT API 12,DevEco Studio 5.0
  4. Kit 前缀约定@kit.XxxKit 为新版 Kit 包路径,@ohos.xxx 为旧版路径,两者并存

9.1 API 版本对照

本系列涉及的 HarmonyOS API 版本与 SDK 对应关系:

API 版本 SDK 版本 DevEco Studio 说明
API 12 5.0.0 5.0 本系列主体版本
API 13 5.0.2 5.0.2 部分新特性参考
API 14+ 6.x 6.x 未来版本预告

9.2 代码风格约定

// ✅ 推荐写法:使用 AppColors、AppFonts 设计令牌
Text('标题').fontSize(AppFonts.TITLE_L).fontColor(AppColors.TEXT)

// ❌ 避免写法:硬编码魔数
Text('标题').fontSize(28).fontColor('#3D352E')

// ✅ 推荐写法:@kit 新式导入
import { hilog } from '@kit.PerformanceAnalysisKit'

// ❌ 避免写法:旧式导入(仍可用但不推荐)
import hilog from '@ohos.hilog'

注意:文章中出现的 HMS Account / SMS 等服务需要在华为开发者联盟完成应用注册和 API 申请后才能真机调用。详见 HMS Core 集成指南


总结

"鹿鹿·笔迹心理分析"是一个覆盖 UI / 数据 / AI / 系统 Kit 四大维度的完整鸿蒙原生项目。100 篇文章从第一行环境配置到最后一篇全栈总结,每一篇都是可运行、可复用的技术实践。

本系列的核心价值在于:

  • 真实性:所有代码来自可运行的完整项目,不是玩具 Demo
  • 系统性:从环境搭建到 AI 推理,覆盖鸿蒙应用开发的完整技术栈
  • 实用性:每个组件、每个 API 都有真实使用场景和代码示例
  • 可复用性:设计令牌、DAO 模式、Canvas 动画等模式可直接应用到其他项目

常见问题(FAQ)

Q:没有鸿蒙手机可以学习吗? A:可以。DevEco Studio 内置模拟器支持 API 14 以上功能,大部分代码在模拟器上运行正常。

Q:有 Android/iOS 开发经验可以直接上手吗? A:是的。ArkTS 语法与 TypeScript 高度相似,UI 声明式写法与 SwiftUI/Compose 理念一致,有跨端经验者通常 1-2 周即可上手。

Q:系列代码会开源吗? A:项目源码计划在系列完结后同步到 GitHub,届时会在文章中更新链接。

Q:AI 推理功能对设备有要求吗? A:端侧 AI 推理(MindSpore Lite)需要 HarmonyOS NEXT API 12+ 且搭载 NPU 的华为设备。模拟器不支持 AI 推理,建议在 Mate 60 及以上机型调试该功能。

Q:学完本系列能找到鸿蒙开发工作吗? A:本系列覆盖了鸿蒙 NEXT 工作中 80% 的常用知识点,结合官方文档和大厂实际项目经验,可以胜任鸿蒙初中级开发岗位。

下一篇预告第01篇 鸿蒙 NEXT 开发环境搭建(DevEco Studio 5.0 完整配置)

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!欢迎在评论区留言——你最期待哪个技术模块?(AI 推理 / Canvas 动画 / 数据库 / 路由系统)


相关资源:

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐