在这里插入图片描述

在这里插入图片描述

子玥酱 (掘金 / 知乎 / CSDN / 简书 同名)

大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。

我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。

技术方向:前端 / 跨端 / 小程序 / 移动端工程化
内容平台:
掘金、知乎、CSDN、简书
创作特点:
实战导向、源码拆解、少空谈多落地
文章状态:
长期稳定更新,大量原创输出

我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。

子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取 11 类前端进阶学习资源(工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学“明白”,也用“到位”

持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱

引言

很多做过 Android 的开发者,在第一次真正做鸿蒙 PC 应用时,都会有一种很强烈的错位感:

代码结构看起来还能复用, 但系统行为却越来越“不受控”。

最常见的反应不是怀疑架构,而是怀疑自己:

  • 是不是分层不够清晰?
  • 是不是 MVVM 没写好?
  • 是不是 UseCase 不够纯?

于是开始疯狂补分层

结果却往往更糟:

层越来越多,问题却越来越底层。

这就说明一件事——问题根本不在分层写得好不好,而在分层思维本身。

Android 分层,本质解决的是什么

先别急着否定 Android。

Android 那套经典结构(MVC → MVP → MVVM → Clean)
在移动时代其实非常成功,因为它解决的是三个核心问题:

生命周期不可控

Activity / Fragment 随时可能销毁重建。

所以需要:

  • ViewModel 托管状态
  • Repository 托管数据
  • UseCase 隔离业务

分层 = 抗生命周期波动。

UI 强依赖页面

Android 的业务通常绑定在:

单页面容器

例如:

  • 一个 Activity = 一个业务入口
  • Fragment 只是子视图

所以:

业务天然是“页面级”的。

分层围绕页面展开是合理的。

进程模型单一

大多数 Android App:

单任务栈 + 单窗口交互

即使有多窗口,也是弱多窗口。

因此:

业务不需要真正解耦运行时。

但鸿蒙 PC 改变的不是框架,而是“运行时世界”

真正关键的一句话:

鸿蒙 PC 不是一个 UI 平台,而是一个任务运行环境。

一旦这句话成立,Android 分层的三个前提就全部失效。

第一层失效:生命周期不再是页面级

在鸿蒙 PC:

  • Ability 可以长期存在
  • UI 可以反复附着 / 分离
  • 多窗口共享同一业务状态

这意味着:

生命周期不再属于页面,而属于任务。

而 Android 分层始终假设:

生命周期 = View 生命周期。

这就是第一处断裂。

第二层失效:业务不再绑定单 UI

在 PC 形态下,一个业务可能:

  • 同时在多个窗口展示
  • 被拖拽成独立面板
  • 被其他应用调用
  • 在后台持续运行

此时再问一个问题:

UseCase 还属于哪个 ViewModel?

答案是:

都不属于。

因为真正的归属变成了:

任务上下文(Task Context)。

第三层失效:运行单元从“页面”变成“任务”

Android 世界里最小稳定单元是:

Activity。

但鸿蒙 PC 里变成:

Task(任务)。

任务具备:

  • 独立状态
  • 独立生命周期
  • 可跨窗口存在
  • 可被系统调度

这是一种操作系统级抽象,而不是 UI 抽象。

于是问题真正浮现

当你继续沿用 Android 分层时,会出现一个非常典型的症状:

架构看起来很干净,但行为完全混乱。

常见表现:

多窗口状态不同步

因为:

状态被锁在各自 ViewModel 里。

后台任务频繁重建

因为:

业务生命周期跟着 UI 走。

跨 Ability 协作困难

因为:

分层从未设计“跨运行单元”。

真正的分水岭:从“分层架构”到“任务架构”

这里是整篇文章最关键的一句话:

鸿蒙 PC 不是不需要分层,而是分层的位置变了。

Android:

UI → ViewModel → UseCase → Repository

鸿蒙 PC 更接近:

UI → Task → Domain → Capability

注意变化:

分层的中心从 ViewModel 变成 Task。

为什么这是架构级变化,而不是技术细节

因为它影响三件最核心的事:

状态归属

  • Android:页面
  • 鸿蒙 PC:任务

生命周期边界

  • Android:UI 控制
  • 鸿蒙 PC:系统调度

协作方式

  • Android:页面跳转
  • 鸿蒙 PC:任务协同
Logo

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

更多推荐