反问式标题:都 2025 了,还在把模型当黑盒?不把鸿蒙的端侧 AI 玩透,谈何极致体验!
本文介绍了鸿蒙OS(HarmonyOS)中AI应用开发的关键技术与实践路径。作者从端侧与云侧AI的对比切入,分析了鸿蒙生态的AI框架支持,包括MindSpore Lite轻量推理引擎、NNRt统一硬件接口及HMS ML Kit现成能力组件。文章详细演示了从模型准备、ArkTS代码实现到HAP打包的完整开发流程,并重点探讨了NPU加速优化策略。最后提出"系统能力调用+自研小模型"
👋 你好,欢迎来到我的博客!我是【菜鸟学鸿蒙】
我是一名在路上的移动端开发者,正从传统“小码农”转向鸿蒙原生开发的进阶之旅。为了把学习过的知识沉淀下来,也为了和更多同路人互相启发,我决定把探索 HarmonyOS 的过程都记录在这里。
🛠️ 主要方向:ArkTS 语言基础、HarmonyOS 原生应用(Stage 模型、UIAbility/ServiceAbility)、分布式能力与软总线、元服务/卡片、应用签名与上架、性能与内存优化、项目实战,以及 Android → 鸿蒙的迁移踩坑与复盘。
🧭 内容节奏:从基础到实战——小示例拆解框架认知、专项优化手记、实战项目拆包、面试题思考与复盘,让每篇都有可落地的代码与方法论。
💡 我相信:写作是把知识内化的过程,分享是让生态更繁荣的方式。
如果你也想拥抱鸿蒙、热爱成长,欢迎关注我,一起交流进步!🚀
📌 前言(含一点小情绪)
这两年,“端侧智能”从口号变成交付项:离线、低时延、隐私友好三箭齐发。HarmonyOS 这边把MindSpore Lite Kit(昇思端侧推理)做成“内生能力”,往下打通 NNRt(Neural Network Runtime,面向多芯片推理的统一桥)与 NPU 等加速,往上又能和 HMS ML Kit 某些服务协同(比如识别、翻译这类能力组件)。集成不难,难的是——以工程化手段,让模型“又快又省还稳”。(华为开发者)
🗂️ 目录(加点表情更醒目)
- 🧠 人工智能技术概述(端侧 vs 云侧、推理栈解剖)
- 🧩 鸿蒙OS中的 AI 框架支持(MindSpore Lite、NNRt、HMS ML Kit)
- 🛠️ AI 应用的开发与部署(从模型到 HAP 的闭环)
- 🚀 AI 加速与硬件支持(NPU/异构与能效思路)
1️⃣ 🧠 人工智能技术概述
1.1 “端侧 vs 云侧”两件事
- 云侧:吞吐高、模型大、升级易;但有时延/隐私/离线顾虑。
- 端侧:低时延、离线可用、隐私友好;但受限于算力/内存/功耗,模型需蒸馏/量化/裁剪。
- 实战建议:将强实时路径(拍照识别、AR 追踪、降噪)留在端侧,把非实时重任务(重排序、个性化推荐)放云侧或批处理。
1.2 推理栈的“三明治”
- 上层框架:MindSpore Lite(HarmonyOS内置轻量推理框架)。
- 中间抽象:NNRt 连接推理框架与不同厂商加速芯片,目标是“跨芯片一致的推理能力”。(GitHub)
- 底层加速:CPU/GPU/NPU/专用 DSP。端上“真体验”的 80% 决定于是否吃到 NPU 和内存带宽友好的算子排布。
2️⃣ 🧩 鸿蒙OS中的 AI 框架支持
2.1 MindSpore Lite Kit(昇思端侧推理)
- 定位:HarmonyOS 上的轻量化 AI 引擎,支持多处理器架构与端侧部署;提供模型转换、加载、推理、内存管理等能力。(华为开发者)
- 开发指导:官方文档覆盖模型部署、API、性能优化与升级路径,版本持续更新。(华为开发者)
2.2 NNRt(Neural Network Runtime)
- 作用:桥接上层推理框架与下层各家NPU/GPU,实现跨芯片的统一推理接口,降低硬件差异造成的接入成本。近期还在迭代 AIPP 等接口。(GitHub)
2.3 HMS ML Kit(可选的“能力组件”)
- 适用:当你不想从零写推理,只需文本识别、人脸关键点、翻译等现成能力时,可以走 HMS ML Kit。对 AppGallery 生态是成熟路线,也可与端侧推理“混搭”。(华为开发者)
2.4 “端上大模型”的动向(给你点方向感)
- 近一年的公开信息里,HarmonyOS 设备与盘古等端侧/混合形态模型的整合在推进,一些机型也宣称内置“Harmony Intelligence”类助手方向。这不是每个项目都得用,但端侧语义/多模态会越来越“系统化”。(The Verge)
3️⃣ 🛠️ AI 应用的开发与部署
下面给一条“从模型到应用上线”的最短可行路径(MVP),优先端侧推理,必要时再叠加云侧服务。
3.1 模型准备(训练/转换/裁剪)
- 训练或选型:以 MobileNetV3、YOLO-N/Segment 小模型为起点;
- 轻量化:剪枝 + 8bit/混合量化,控制在几十 MB 内存峰值;
- 转换:按官方指南把模型转为 MindSpore Lite 可用格式(如
.ms),核对输入尺寸与算子支持清单。(华为开发者)
3.2 ArkTS × MindSpore Lite(端侧推理骨架)
说明:以下为示例型代码结构,遵循官方“加载→绑定 I/O→执行→取结果”的流程。具体 API 名称请以文档版本为准。
// /ets/ai/InferenceService.ts (示例结构)
import { inference } from '@ohos.mindspore.lite'; // 以实际包名为准
export class InferenceService {
private model?: inference.Model;
async load(modelPath: string) {
this.model = await inference.loadModel(modelPath, {
device: 'AUTO', // CPU/GPU/NPU,AUTO 交给框架与 NNRt
precision: 'INT8_PREF', // 优先选择量化路径
threads: 4 // 结合设备核数微调
});
}
async run(input: Float32Array | Uint8Array, shape: number[]) {
if (!this.model) throw new Error('model not loaded');
const inputTensor = inference.tensor(input, { shape, dtype: 'u8' });
const outputs = await this.model.run([inputTensor]);
// 假设单输出
return outputs[0].toTypedArray();
}
release() { this.model?.close(); }
}
关键点
- 设备选择:把
device:'AUTO'交给框架 + NNRt,让系统优先吃到 NPU/GPU; - 精度策略:优先 INT8/混合精度,尾部算子必要时保留 FP16/FP32;
- 线程数:从 2/4 起步,配合实机采样找峰值。
(以上流程与策略对齐 MindSpore Lite Kit 的模型部署思路。(华为开发者))
3.3 UIAbility 调用(最小可用交互)
// /ets/pages/DetectPage.ets(示意)
@Entry
@Component
struct DetectPage {
@State result: string = 'Ready';
private svc = new InferenceService();
async aboutToAppear() {
await this.svc.load('assets/models/detect.ms');
}
async onPick(img: PixelMap) {
const { data, shape } = preprocess(img); // resize/normalize/nchw
const out = await this.svc.run(data, shape);
this.result = postprocess(out); // NMS/softmax/阈值
}
build() {
Column() {
Text('🔍 ' + this.result).fontSize(18).margin({ bottom: 12 })
Button('Pick Image', { type: ButtonType.Capsule }).onClick(()=> this.onPick(/* ... */))
}.padding(16)
}
}
3.4 HAP 打包与权限/配置
- 在
module.json5中声明ohos.permission.INTERNET(如需云侧回落)与存储访问; - 把
.ms模型放入资源目录(注意大小与签名体积); - 通过 DevEco Studio 打包 HAP,证书/Profile 一致才能安装运行。(华为开发者)
3.5 “不想自己写推理”的替代:HMS ML Kit
- 直接调用 文字识别/场景识别/翻译 等服务型能力,上手快、维护成本低;
- 适合对可解释性/极致时延要求不高、且“功能即服务”的场景。(华为开发者)
4️⃣ 🚀 AI 加速与硬件支持
4.1 NPU 的“正确打开方式”
-
NNRt 负责把你的推理框架与底层加速芯片“拉通”,包括常见的 AIPP(预处理)接口演进;开发者少操心厂商差异,把精力放在模型与 I/O 上。(GitHub)
-
实操经验:
- 把预处理前移到 NPU(若芯片支持 AIPP),少走一趟内存拷贝;
- 模型在端上做 静态量化 更稳;
- 充分利用 批/流模式,在摄像头流里按帧预算做“跳帧推理”。
4.2 OpenHarmony 场景下的 NPU 适配案例参考
- 社区在 RKNN(瑞芯微 NPU) 上的移植与推理演示,说明在标准系统上可跑 NPU,流程涉及驱动移植与样例验证。研发侧的可行性是实证过的(虽然上层接口与平台不同,思路具有参考价值)。(esnl.hnu.edu.cn)
4.3 端上“大模型/助手”趋势 & 设备级协同
- 近阶段一些设备宣称搭载 Harmony Intelligence(基于盘古等模型)用于端上助理与场景理解;这类能力逐渐系统化,会带来 语义理解/多模态 的“平台级”入口。对第三方 App 来说,更现实的是**“调用系统能力 + 自研小模型”**的组合拳。(The Verge)
🧪 性能评估与效果验证(你得有量化)
观测四件套
- 时延:主推理链路 P50/P95;
- 吞吐:帧率/每秒处理次数;
- 能耗:有条件记录频点轨迹与功耗;
- 稳定性:内存峰值、热限制触发次数。
A/B 评测建议
- A 方案:CPU/FP32 基线;
- B 方案:INT8 量化 +
device:'AUTO'(吃到 NPU/GPU)+ 预处理下沉; - 观测指标:时延/能耗/峰值内存三项至少要有两项下降,否则就别自我感动。
🧷 口袋级 Checklist(上墙就能用)
- ✅ MindSpore Lite 端侧推理优先,模型转为
.ms;(华为开发者) - ✅ 使用 NNRt 的“跨芯片桥”,尽可能吃到 NPU;(GitHub)
- ✅ 量化/裁剪先上,目标内存峰值**< 256MB**(视机型调);
- ✅ 预处理尽量合并/下沉,减少内存搬运;
- ✅ UIAbility 与推理线程隔离,避免主线程阻塞;
- ✅ 以 HAP 发布,校验
module.json5与签名一致性;(华为开发者) - ✅ 不想自己造轮子的场景,HMS ML Kit 直接抄近道。(华为开发者)
🧯 小结(认真但不板)
AI 集成的临门一脚,不在“模型够不够炫”,而在“端上能不能稳、能不能省、能不能快速迭代”。鸿蒙OS提供了框架(MindSpore Lite)—抽象(NNRt)—硬件(NPU/GPU)这条贯通的通路,外加 HMS ML Kit 的“能力即服务”兜底。剩下的,就看你如何通过量化与工程化把它们串成一条高可用的业务链路。
📚 参考资料(建议收藏)
- MindSpore Lite Kit(HarmonyOS 指南与介绍):覆盖部署、API 与版本说明。(华为开发者)
- Neural Network Runtime(NNRt):连接推理框架与底层加速芯片的统一运行时。(GitHub)
- HMS ML Kit 能力:现成的机器学习服务与示例仓库。(华为开发者)
- OpenHarmony × NPU:RKNN 等 NPU 在 OpenHarmony 标准系统上的实测与移植思路(供硬件侧参考)。(esnl.hnu.edu.cn)
- 端上大模型/系统级助手动向:HarmonyOS NEXT 与设备内置智能助手相关报道。(The Verge)
想要“零 AI 味儿”的成文版白皮书 or 对外宣发稿?把你们的模型与场景细节丢给我,我就把“工程做法 + 性能曲线 + Demo 截图”都安排上 💪
📝 写在最后
如果你觉得这篇文章对你有帮助,或者有任何想法、建议,欢迎在评论区留言交流!你的每一个点赞 👍、收藏 ⭐、关注 ❤️,都是我持续更新的最大动力!
我是一个在代码世界里不断摸索的小码农,愿我们都能在成长的路上越走越远,越学越强!
感谢你的阅读,我们下篇文章再见~👋
✍️ 作者:某个被流“治愈”过的 移动端 老兵
📅 日期:2025-11-05
🧵 本文原创,转载请注明出处。
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐


所有评论(0)