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

前言:别急着站队,先把“盘子”看清楚 🙃

很多争论都特别像饭局:还没上菜先吵起来——“鸿蒙是不是 Android”“纯血到底纯不纯”。我一开始也挺上头的,后来写多了系统、框架、应用层的东西才发现:架构这玩意儿,不是口号,是分层和边界。
  你只要把“谁负责什么、谁依赖谁、能力从哪儿上来”搞明白,很多争论自己就没劲了。

1)鸿蒙系统分层架构:内核层 / 系统服务层 / 框架层 / 应用层

鸿蒙(以 OpenHarmony 的体系表达最清晰)整体遵从分层设计:内核层 → 系统服务层 → 框架层 → 应用层。这不是我拍脑袋编的,是官方文档里明确写的分层设计思路:OpenHarmony 从下往上依次为这四层,并支持在多设备场景下按需裁剪组件。 (OpenHarmony)

我用更“人话”的方式给你画个层次感(别嫌土,土但清晰):

┌──────────────────────────────┐
│           应用层              │  App / 元服务 / 行业应用
├──────────────────────────────┤
│           框架层              │  应用框架、UI框架、能力框架、语言运行时等
├──────────────────────────────┤
│         系统服务层            │  各类系统服务:账号、窗口、网络、分布式、数据、媒体…
├──────────────────────────────┤
│           内核层              │  内核 + 基础驱动/硬件抽象 + 安全与基础能力
└──────────────────────────────┘

1.1 内核层:系统“底气”在哪儿

内核层你可以理解为:“这系统能不能站起来走路”。这里通常包含内核(调度/内存/IPC/中断等)以及与硬件相关的基础能力。OpenHarmony 也强调驱动侧的平台/内核解耦与统一底座思路(便于适配不同硬件与内核形态)。 (知乎专栏)

我当年第一次看系统启动链路时,心里只有一句:**“谁要是敢在内核边界里乱塞业务逻辑,我跟谁急。”**😤

1.2 系统服务层:把“共性能力”沉下去

系统服务层就是:把所有 App 都会用、又不该每个 App 重写一遍的能力,统一做成服务。
比如:网络、账号、窗口、媒体、数据管理,以及——注意——分布式相关的服务通常也会在这里占很重要的位置(下面我会专门讲)。

1.3 框架层:开发者真正“摸到”的那层

框架层更像开发者的主战场:应用模型、UI 框架、能力框架、语言运行时/标准库等。你写 ArkTS/ArkUI,大多数时候就是在跟框架层打交道。
这一层的好坏,直接决定了:

  • 你写业务到底是“顺滑”还是“拧巴”
  • 同样需求,你要写 100 行还是 1000 行
  • 性能和体验是不是靠“玄学调参”

1.4 应用层:App/元服务真正落地的地方

应用层就是各种应用、元服务、行业解决方案。架构讨论到这里就别飘了——最终用户只关心:好不好用、稳不稳、快不快
架构的价值就在于:底层分层清晰,应用层才能“少背锅”。

2)与 Android / iOS 架构的本质区别:差的不是名字,是“边界哲学”

如果你只把鸿蒙当作“另一个移动 OS”,你会错过它最关键的设计取向。说几条我个人认为最“本质”的差异(不是谁好谁坏,更多是路线差异):

2.1 “全场景、多设备”是前提,不是后来补丁

Android 很强,但它的生态历史包袱你也懂:手机为中心,后来才扩展到 TV、Watch、Car…
iOS 则是 Apple 自己的硬件闭环体验,跨设备协同当然也做得好,但更多是“生态内协同”。
而鸿蒙(尤其鸿蒙体系强调的分布式能力)更像是把“多设备协同”当成架构起点来规划:设备不是孤岛,能力可以组合。

你可以把它理解为一句话:

Android/iOS 更像“一个设备上跑很多 App”;鸿蒙更强调“很多设备像一台超级终端”。

2.2 “能力”抽象更前置:从“设备能力”到“服务能力”

很多传统系统里,能力是“设备本地”的:相机在本机、麦克风在本机、传感器在本机。
鸿蒙的分布式思路则更倾向于把能力抽象成“可发现、可协同、可组合”的资源池——这就要求系统服务、框架层在架构里要留足“协同”接口。

2.3 生态与兼容路线:HarmonyOS NEXT 的一个关键转向

谈差异绕不开 HarmonyOS NEXT:公开报道与业界信息普遍指出,HarmonyOS NEXT 走向更独立的路线,并且不再兼容 Android 应用的方向被多方提及。 (一财全球)

这一步的意义是:生态策略从“兼容换时间”逐步转向“原生换未来”。
当然,代价也很现实:原生生态要靠开发者一点点堆起来——所以你会看到各种“原生化”“迁移”“最佳实践”铺天盖地(没办法,路要走就得有人走)。

3)分布式能力在架构中的位置:它不是“功能点”,更像“系统总线级能力”

分布式在鸿蒙体系里,最怕被误解成“一个 SDK、一个插件、一个可选项”。我更愿意把它形容成:贯穿系统服务层与框架层的“基础设施”
直观点说:

  • 系统服务层负责:设备发现/认证、连接管理、数据通道、安全策略等“底座能力”
  • 框架层负责:把这些能力包装成开发者好用的 API/组件/模型
  • 应用层才负责:用这些能力做业务体验(跨设备登录、跨屏流转、协同编辑等)

3.1 代码演示:分布式设备发现(ArkTS)

别光说概念,上代码。下面这个例子用 @ohos.distributedDeviceManager 做一个最常见动作:发现周边设备并拿到列表。官方 API 参考里明确了模块能力与接口(如创建/释放 DeviceManager、发现、监听等)。 (华为开发者)

import distributedDeviceManager from '@ohos.distributedDeviceManager';

let dm: distributedDeviceManager.DeviceManager | undefined;

export async function startDiscoverAndListDevices(bundleName: string) {
  // 1) 创建设备管理器
  dm = distributedDeviceManager.createDeviceManager(bundleName);

  // 2) 监听发现成功
  dm.on('discoverSuccess', (data) => {
    // data: DeviceBasicInfo(结构以文档为准)
    console.info('[DM] discoverSuccess => ' + JSON.stringify(data));
  });

  // 3) 监听设备上下线变化(可选)
  dm.on('deviceStateChange', (data) => {
    console.info('[DM] deviceStateChange => ' + JSON.stringify(data));
  });

  // 4) 发起发现
  // 参数与 discover 过滤能力(如发现类型/范围)以你当前 API 版本文档为准
  dm.startDiscovering({
    // 示例字段:不同版本可能不同,请以 API 文档为准
    discoverMode: 0
  });

  // 5) 获取可信设备列表(异步)
  const list = await dm.getAvailableDeviceList();
  console.info('[DM] available devices => ' + JSON.stringify(list));

  return list;
}

export function stopDiscover(bundleName: string) {
  if (!dm) return;
  dm.stopDiscovering();
  distributedDeviceManager.releaseDeviceManager(bundleName);
  dm = undefined;
}

我特别想提醒一句(带点情绪哈😤):

别把“发现设备”写在 UI build 里反复触发。
你要真这么干,页面每次重组都发现一遍设备……那体验就不是分布式,是“分布式折磨”。

3.2 代码演示:分布式数据(KVStore)做跨设备同步的“最小闭环”

另一个开发者特别爱用、也特别容易写出效果的就是分布式 KV 数据库:它提供不同设备间数据库协同能力。官方 API 参考明确了这是分布式键值数据库模块。 (华为开发者)

下面给你一个“写入 + 同步”的最小思路示例(字段/流程按你当前 SDK 版本适配):

import distributedKVStore from '@ohos.data.distributedKVStore';

export async function putAndSync(storeId: string, key: string, value: string) {
  const kvManagerConfig: distributedKVStore.KVManagerConfig = {
    bundleName: 'com.example.demo'
  };

  const kvManager = distributedKVStore.createKVManager(kvManagerConfig);

  const options: distributedKVStore.Options = {
    createIfMissing: true,
    encrypt: false,
    autoSync: true,
    kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION
  };

  const store = await kvManager.getKVStore<distributedKVStore.SingleKVStore>(storeId, options);

  await store.put(key, value);

  // 触发同步(具体 sync 策略、设备列表、模式以文档为准)
  await store.sync([], distributedKVStore.SyncMode.PUSH_PULL);

  console.info(`[KV] put & sync ok => ${key}=${value}`);
}

你会发现:架构里“分布式”真正的价值在于——它不是让你写更多代码,而是让你用更少的业务代码拿到跨设备体验
当然,前提是你把边界守住:

  • 服务层/框架层解决复杂性
  • 业务层只消费能力

4)OpenHarmony 与 HarmonyOS NEXT 的关系:像“开源底座”和“商业发行版”,但别简单等号

这块很多人最容易聊偏:要么说成完全一样,要么说成毫无关系。更接近事实的说法是:

  • **OpenHarmony(OpenAtom OpenHarmony)**是开放原子开源基金会孵化及运营的开源项目(定位“面向全场景终端 OS 框架和平台”,支持灵活裁剪)。 (开放原子基金会)
  • 公开信息也提到华为曾向开放原子开源基金会捐赠相关代码,并由基金会按规范运营该开源项目。 (Reuters)
  • **HarmonyOS(含 NEXT)**是华为面向自家/合作设备的商业系统路线之一;HarmonyOS NEXT 被多方报道为更独立、并明确朝“不兼容 Android 应用”的方向推进。 (一财全球)

我个人更“工程化”的理解(你拿去跟人解释不丢人)

你可以把它们类比成:

  • OpenHarmony:更像“开源的系统底座/公共平台”,给厂商做定制、裁剪、二次开发空间更大
  • HarmonyOS(尤其 NEXT):更像“华为自家生态的发行版路线”,强调统一体验、原生生态、产品级整合

但注意:**“有共通”不等于“完全一致”,“不同路线”也不等于“互不相干”。**工程世界最常见的状态就是:共享一部分基础能力,各自有自己的产品化与演进节奏。

结语:你真的想用“单设备思维”去理解鸿蒙架构吗?

我写到这里,其实就想把一个别扭但真实的感受说出来:

鸿蒙架构最“难啃”的地方,不是名词多,而是它逼你把视角从“手机 App”抬到“系统级协同”。

你要是只盯着应用层,很多能力看起来像“噱头”;
但你把分层一放开,把分布式当成贯穿服务层与框架层的底座去理解——它就突然“合理”了:

行了,我不端着了:如果你看完还能把鸿蒙当“换皮 Android”,那你这嘴是真硬,我服。😄

📝 写在最后

如果你觉得这篇文章对你有帮助,或者有任何想法、建议,欢迎在评论区留言交流!你的每一个点赞 👍、收藏 ⭐、关注 ❤️,都是我持续更新的最大动力!

我是一个在代码世界里不断摸索的小码农,愿我们都能在成长的路上越走越远,越学越强!

感谢你的阅读,我们下篇文章再见~👋

✍️ 作者:某个被流“治愈”过的 移动端 老兵
📅 日期:2025-11-05
🧵 本文原创,转载请注明出处。

Logo

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

更多推荐