当前位置: 首页 > news >正文

鸿蒙 App 架构:为什么页面越来越薄?

网罗开发(小红书、快手、视频号同名)

大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。


文章目录

    • 引言
    • 一、为什么传统 App 页面会越来越重
    • 二、鸿蒙为什么更容易出现“大页面”
    • 三、真正的问题:页面承担了“不属于它的责任”
    • 四、为什么未来页面一定越来越薄
    • 五、页面真正应该负责什么
      • 1、UI 展示
      • 2、用户交互
      • 3、局部 UI 状态
      • 页面不应该负责
    • 六、真正的变化:Store 开始成为中心
      • 为什么
      • 手机页面
      • 平板页面
      • TV 页面
    • 七、AI 为什么会逼着页面“变薄”
    • 八、Task 架构会进一步削弱“页面中心化”
    • 九、真正优秀的鸿蒙项目,都有一个特点
    • 十、为什么“页面越来越薄”是必然趋势
    • 十一、未来鸿蒙 App 的真正核心
      • State Flow
      • Task Runtime
      • AI Runtime
      • Distributed Runtime
    • 十二、一个非常关键的认知
    • 十三、总结

引言

很多人刚开始做鸿蒙 App 时,都会下意识这样设计:

页面 = 功能

于是:

  • 页面写逻辑
  • 页面调接口
  • 页面管状态
  • 页面处理流程

项目初期:

开发非常快

但随着项目越来越大,很快就会进入一种熟悉状态:

页面越来越厚 一个页面几千行

最后:

不敢改 一改就连锁爆炸

很多团队做到后面才慢慢意识到:

真正稳定的鸿蒙架构,页面一定会越来越“薄”。

因为未来鸿蒙 App 的核心,已经不再是:

Page

而是:

Task State Runtime

页面开始从:

“业务中心”

变成:

“状态展示层”

这是未来 AI Native 鸿蒙 App 一个非常重要的变化。

一、为什么传统 App 页面会越来越重

因为传统移动开发一直是:

页面驱动

典型结构:

Page ↓ 业务逻辑 ↓ 接口 ↓ 数据

于是很多页面最后会变成:

loadUser()loadOrder()submit()pay()cancel()

页面既负责:

  • UI
  • 数据
  • 流程
  • 网络
  • 状态

最后页面会变成:

一个“巨型控制器”。

二、鸿蒙为什么更容易出现“大页面”

因为 ArkUI:

状态驱动非常方便

很多人很容易:

@Stateorders:Order[]@Stateuser:User@Stateloading:boolean

接着:

aboutToAppear(){this.loadAll()}

最后:

所有逻辑都堆进页面

尤其:

  • 分布式
  • AI
  • 多设备
  • Task 流程

一旦加入:

页面复杂度会指数级增长

三、真正的问题:页面承担了“不属于它的责任”

很多项目的核心问题:

页面知道得太多。

例如,页面知道:

  • 接口怎么调
  • 数据怎么存
  • AI 怎么运行
  • 状态怎么同步
  • Task 怎么调度

结果:

页面和整个系统高度耦合

最后:

任何模块改动 页面都会受影响

四、为什么未来页面一定越来越薄

因为未来 App 的核心正在变化,过去:

页面组织功能

未来:

Task 组织能力

例如,过去:

打开订单页 点击按钮 创建订单

未来:

awaitagent.run("帮我下单")

这里:

页面甚至可能不存在

真正执行的是:

Task Runtime

所以页面会越来越像:

“结果展示器”

五、页面真正应该负责什么

未来稳定的鸿蒙页面,只应该负责:

1、UI 展示

例如:

Text(userStore.name)

2、用户交互

例如:

Button("提交")

3、局部 UI 状态

例如:

@StateshowDialog:boolean

页面不应该负责

网络错误:

http.request()

AI 调度错误:

agent.run()

全局状态错误:

globalStore.user=xxx

分布式同步错误:

kvStore.put()

六、真正的变化:Store 开始成为中心

过去:

Page 是核心

未来:

Store 是核心

推荐结构:

UI ↓ Store ↓ Task ↓ System ↓ Repository

为什么

因为:

页面会变化

但:

业务状态不会变化

例如:

手机页面

单栏布局

平板页面

双栏布局

TV 页面

焦点卡片

但:

订单状态

本质是同一个,所以:

真正稳定的是 State,不是 Page。

七、AI 为什么会逼着页面“变薄”

因为 AI 会让:

页面逻辑彻底失控

传统 App:

用户一次点击 一个动作

AI App:

一次任务 几十个动作

例如:

awaitagent.run("帮我整理今天会议")

AI 可能:

  • 创建待办
  • 更新日历
  • 发送消息
  • 创建提醒
  • 写入笔记

如果这些逻辑都在页面:

页面一定爆炸

所以未来一定会变成:

AI Runtime ↓ Task Runtime ↓ Store ↓ UI

页面只负责:

渲染结果

八、Task 架构会进一步削弱“页面中心化”

传统:

页面 = 功能入口

Task 架构:

Intent = 功能入口

例如:

帮我继续昨天没看完的视频

系统自动:

  • 找视频
  • 找播放记录
  • 切换设备
  • 恢复进度

这里:

用户甚至没进入页面

所以未来:

页面的重要性会持续下降

九、真正优秀的鸿蒙项目,都有一个特点

不是:

页面特别复杂

而是:

页面极其简单

很多成熟项目页面最后只有:

  • UI
  • Store Binding
  • Event

例如:

Button("支付").onClick(()=>{orderStore.pay()})

页面根本不知道:

  • 怎么支付
  • 怎么调接口
  • 怎么同步状态

这些都在:

Task / Store / Runtime

内部完成。

十、为什么“页面越来越薄”是必然趋势

因为未来 App 会越来越:

系统化

而不是:

页面化

过去:

页面驱动功能

未来:

任务驱动系统

过去:

用户操作 UI

未来:

用户表达目标

所以:

UI 会逐渐外围化

十一、未来鸿蒙 App 的真正核心

未来真正核心会变成:

State Flow

负责:

状态流转

Task Runtime

负责:

任务执行

AI Runtime

负责:

智能调度

Distributed Runtime

负责:

多设备协同

页面只负责:

把结果显示出来

十二、一个非常关键的认知

很多人会觉得:

页面代码少了 是不是架构退化了

其实恰恰相反,真正成熟的系统一定是:

页面越来越简单,系统越来越强。

因为:

复杂度被“下沉”了

下沉到:

  • Store
  • Runtime
  • Task
  • AI
  • Domain

这些真正稳定的地方。

十三、总结

如果用一句话总结:

页面越来越薄,本质上是 App 开始“系统化”。

过去:

Page First

未来:

Runtime First

过去:

页面组织能力

未来:

Task 组织能力

过去:

UI 驱动功能

未来:

State 驱动系统

很多鸿蒙项目后期越来越难维护,并不是因为:

  • ArkUI 太复杂
  • 分布式太难
  • AI 太重

真正的问题是:

页面承担了太多“不属于页面”的责任。

记住一句话:

真正优秀的鸿蒙架构, 一定是: 页面越来越薄, 系统越来越厚。

当你真正完成:

  • Store 中心化
  • Task 化
  • Runtime 化
  • 状态分层
  • AI 解耦
  • 页面去业务化

你会明显感觉到:

整个鸿蒙 App 开始“像操作系统” 而不是“页面集合”
http://www.gsyq.cn/news/1387896.html

相关文章:

  • 全球小型电动线性驱动器市场稳中有进:2025年15.25亿美元筑基,2032年剑指22.47亿,5.8%CAGR锚定长期稳健增长逻辑
  • 全球反应等离子体沉积设备市场:预计2032年将达到8.63亿美元
  • 如何在Windows 10/11上安装Android子系统:WSABuilds完整指南
  • Unity Sentis兼容YOLOv8的NMS层问题与C#后处理方案
  • 从零搭建 Prometheus + Grafana 监控平台全攻略
  • 哨声响,数据动:耐高总决赛背后的AI力量
  • AI辅助开发工作流:从GitHub Issue到PR合并的系统化实践
  • 别再只用plot了!Matlab plotyy双Y轴绘图保姆级教程(含刻度、图例、线型全设置)
  • 从 MIPI ERR1/ERR2 到视频处理高手:Camera 调试必须掌握的底层排障方法
  • UNION vs UNION ALL:去重机制与执行计划性能差异详解
  • Excel簇状柱形图实战指南:多维离散数据对比可视化
  • 软件测试外包实战指南:独立团队、人员稳定与AI辅助的真相
  • 从ZIP解压到网络传输:深入浅出图解CRC-32校验的日常工作
  • Kali Linux下BurpSuite Pro完整部署与HTTPS抓包实战指南
  • AMD Ryzen 7 3800X + VMware 15.1.0 保姆级教程:手把手带你搞定macOS Catalina虚拟机(含避坑指南)
  • STC8单片机定时器中断里自增32位变量,为啥结果总出错?一个被忽略的8位机内存访问细节
  • 硬件在环(HIL)测试入门:如何用自制的60通道万能BOB盒搭建你的第一个汽车ECU测试台架?
  • CSS三大定位技巧全解析
  • 源代码论文分享|基于Java的企业OA管理系统的设计与实现!
  • 别再为VTK+VS配置发愁了!手把手教你用CMake搞定VTK 9.0(附完整测试代码)
  • 实时系统中LLM异步集成:从500ms阻塞到零感知延迟的架构实践
  • DeepSeek注释生成准确率提升63.8%的关键突破(内部Benchmark白皮书首次流出)
  • 梯度提升原理与实战:从错误追击到工业级部署
  • C#原生鼠标录制回放:基于Raw Input的高精度Windows输入控制
  • 八年测试外包实战复盘:从人力输出到质量伙伴的转型之路
  • Unity平台游戏资源包:预校准物理-动画-音频协同开发流水线
  • 手把手教你用GEE APP玩转变化检测:Landtrendr、Bfast、CCDC官方可视化工具实操避坑
  • 从一次CAN总线‘丢帧’排查说起:深入理解扩展帧过滤器的‘列表模式’与‘掩码模式’到底怎么选
  • LizzieYzy:围棋AI分析的终极指南,3分钟快速入门
  • Excel频域分析实战:从振动信号到频谱图,5步教你诊断设备故障