👋 你好,欢迎来到我的博客!我是【菜鸟学鸿蒙】
   我是一名在路上的移动端开发者,正从传统“小码农”转向鸿蒙原生开发的进阶之旅。为了把学习过的知识沉淀下来,也为了和更多同路人互相启发,我决定把探索 HarmonyOS 的过程都记录在这里。
  
  🛠️ 主要方向:ArkTS 语言基础、HarmonyOS 原生应用(Stage 模型、UIAbility/ServiceAbility)、分布式能力与软总线、元服务/卡片、应用签名与上架、性能与内存优化、项目实战,以及 Android → 鸿蒙的迁移踩坑与复盘。
  🧭 内容节奏:从基础到实战——小示例拆解框架认知、专项优化手记、实战项目拆包、面试题思考与复盘,让每篇都有可落地的代码与方法论。
  💡 我相信:写作是把知识内化的过程,分享是让生态更繁荣的方式。
  
   如果你也想拥抱鸿蒙、热爱成长,欢迎关注我,一起交流进步!🚀

📌 前言(含一点小情绪)

这两年,“端侧智能”从口号变成交付项:离线、低时延、隐私友好三箭齐发。HarmonyOS 这边把MindSpore Lite Kit(昇思端侧推理)做成“内生能力”,往下打通 NNRt(Neural Network Runtime,面向多芯片推理的统一桥)与 NPU 等加速,往上又能和 HMS ML Kit 某些服务协同(比如识别、翻译这类能力组件)。集成不难,难的是——以工程化手段,让模型“又快又省还稳”。(华为开发者)

🗂️ 目录(加点表情更醒目)

  1. 🧠 人工智能技术概述(端侧 vs 云侧、推理栈解剖)
  2. 🧩 鸿蒙OS中的 AI 框架支持(MindSpore Lite、NNRt、HMS ML Kit)
  3. 🛠️ AI 应用的开发与部署(从模型到 HAP 的闭环)
  4. 🚀 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 模型准备(训练/转换/裁剪)

  1. 训练或选型:以 MobileNetV3、YOLO-N/Segment 小模型为起点;
  2. 轻量化:剪枝 + 8bit/混合量化,控制在几十 MB 内存峰值
  3. 转换:按官方指南把模型转为 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)

  • 实操经验

    1. 把预处理前移到 NPU(若芯片支持 AIPP),少走一趟内存拷贝;
    2. 模型在端上做 静态量化 更稳;
    3. 充分利用 批/流模式,在摄像头流里按帧预算做“跳帧推理”。

4.2 OpenHarmony 场景下的 NPU 适配案例参考

  • 社区在 RKNN(瑞芯微 NPU) 上的移植与推理演示,说明在标准系统上可跑 NPU,流程涉及驱动移植与样例验证。研发侧的可行性是实证过的(虽然上层接口与平台不同,思路具有参考价值)。(esnl.hnu.edu.cn)

4.3 端上“大模型/助手”趋势 & 设备级协同

  • 近阶段一些设备宣称搭载 Harmony Intelligence(基于盘古等模型)用于端上助理与场景理解;这类能力逐渐系统化,会带来 语义理解/多模态 的“平台级”入口。对第三方 App 来说,更现实的是**“调用系统能力 + 自研小模型”**的组合拳。(The Verge)

🧪 性能评估与效果验证(你得有量化)

观测四件套

  1. 时延:主推理链路 P50/P95;
  2. 吞吐:帧率/每秒处理次数;
  3. 能耗:有条件记录频点轨迹与功耗;
  4. 稳定性:内存峰值、热限制触发次数。

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
🧵 本文原创,转载请注明出处。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐