本篇为理论篇,帮助你全面了解鸿蒙生态、技术优势和开发机遇

学习目标

古今职鉴项目功能模块预览

图:古今职鉴项目中的课程与案例模块,后续教程会围绕真实项目逐步展开。

完成本篇后,你将能够:

  • ✅ 了解鸿蒙操作系统的发展历程和战略意义
  • ✅ 理解鸿蒙与 Android/iOS 的核心差异
  • ✅ 掌握鸿蒙原生应用的独特优势
  • ✅ 了解「古今职鉴」项目的功能和技术架构

预计学习时间

约 30-45 分钟(纯理论,无需编码)


第一部分:鸿蒙生态现状与发展趋势

1.1 鸿蒙操作系统的诞生背景

2019年8月9日,华为在开发者大会上正式发布了 HarmonyOS(鸿蒙操作系统)。这个名字来源于中国古代神话中的"鸿蒙",意为天地未开辟之前的混沌状态,寓意着一个全新时代的开始。

鸿蒙诞生的三个关键背景:

  1. 技术自主可控的需求
  • 2019年华为被列入实体清单,无法使用 Google 移动服务(GMS)
  • 这促使华为加速自研操作系统的开发
  • 鸿蒙从"备胎"转正,成为华为设备的核心操作系统
  1. 万物互联时代的到来
  • 智能手机、平板、手表、电视、汽车等设备越来越多
  • 传统操作系统(Android、iOS)主要为单一设备设计
  • 需要一个能够统一管理多种设备的操作系统
  1. 用户体验的升级需求
  • 用户希望在不同设备间无缝切换
  • 传统方式需要在每个设备上单独安装和配置应用
  • 需要一种更智能的跨设备协同方案

1.2 鸿蒙的发展历程

时间 版本 里程碑事件
2019年8月 HarmonyOS 1.0 首次发布,搭载于智慧屏产品
2020年9月 HarmonyOS 2.0 开源,支持手机、平板等设备
2021年6月 HarmonyOS 2.0 正式版 首次搭载于华为手机
2022年7月 HarmonyOS 3.0 超级终端、万能卡片升级
2023年8月 HarmonyOS 4.0 小艺智能体、全场景智能
2024年10月 HarmonyOS NEXT 纯血鸿蒙,不再兼容 Android

HarmonyOS NEXT 的重大意义:

HarmonyOS NEXT(也称为"纯血鸿蒙")是鸿蒙发展史上最重要的里程碑:

  • 完全自主研发:不再基于 Android 开源项目(AOSP),从内核到框架全部自研
  • 全新技术栈:ArkTS + ArkUI 成为唯一的开发方式
  • 性能大幅提升:没有虚拟机开销,原生应用运行更流畅
  • 安全性增强:全新的安全架构,更好地保护用户隐私

1.3 鸿蒙生态的市场数据

截至 2025 年初,鸿蒙生态已经取得了令人瞩目的成绩:

设备数量:

  • 鸿蒙设备总量突破 10 亿台
  • 覆盖手机、平板、手表、电视、汽车等 200+ 品类
  • 合作伙伴超过 2300 家

应用生态:

  • 原生应用数量超过 15000 款
  • 头部应用覆盖率超过 99%
  • 日活跃用户超过 4 亿

开发者生态:

  • 注册开发者超过 700 万
  • 开发者培训认证超过 100 万人次
  • 高校合作超过 300 所

1.4 为什么现在是学习鸿蒙的最佳时机?

1. 蓝海市场,机遇巨大

与 Android 和 iOS 相比,鸿蒙原生应用市场仍处于早期阶段:

平台 应用数量 开发者数量 竞争程度
Android 350万+ 数千万 极高
iOS 200万+ 数百万 很高
HarmonyOS 1.5万+ 700万 较低

早期入局者有更多机会获得用户和市场份额。

2. 华为的大力支持

华为为鸿蒙开发者提供了丰富的支持:

  • 开发工具:DevEco Studio 免费使用,功能强大
  • 技术文档:官方文档详尽,中文支持完善
  • 培训资源:免费的在线课程和认证考试
  • 推广支持:优质应用可获得应用市场推荐
  • 商业变现:华为应用市场分成比例优惠

3. 技术栈友好

如果你有以下背景,学习鸿蒙会更加轻松:

  • 前端开发者:ArkTS 基于 TypeScript,语法相似
  • React/Vue 开发者:声明式 UI 思想相通
  • Android/iOS 开发者:组件化开发模式类似

第二部分:鸿蒙 vs Android/iOS 开发者视角对比

2.1 开发语言对比

特性 HarmonyOS (ArkTS) Android (Kotlin) iOS (Swift)
语言基础 TypeScript 超集 JVM 语言 苹果自研
类型系统 强制静态类型 可选静态类型 强制静态类型
空安全 内置支持 内置支持 内置支持
学习曲线 较平缓(前端友好) 中等 中等
生态成熟度 发展中 非常成熟 非常成熟

ArkTS 的特点:

// ArkTS 代码示例
@Entry
@Component
struct HelloWorld {
  @State message: string = 'Hello, HarmonyOS!';
  
  build() {
    Column() {
      Text(this.message)
        .fontSize(24)
        .fontWeight(FontWeight.Bold)
      
      Button('点击我')
        .onClick(() => {
          this.message = '你好,鸿蒙!';
        })
    }
  }
}

ArkTS 相比 TypeScript 的主要限制:

限制 原因
禁止使用 any 类型 确保类型安全,提升性能
对象字面量必须有类型声明 明确数据结构,便于优化
禁止动态属性访问 编译期优化,减少运行时开销
禁止索引签名 使用 Map 替代,更安全

2.2 UI 框架对比

特性 HarmonyOS (ArkUI) Android (Compose) iOS (SwiftUI)
编程范式 声明式 声明式 声明式
状态管理 @State/@Link/@Provide remember/State @State/@Binding
布局系统 Column/Row/Flex Column/Row/Box VStack/HStack/ZStack
组件复用 @Component/@Builder @Composable View/ViewModifier
预览功能 支持 支持 支持

三大平台的 UI 代码对比:

// HarmonyOS (ArkUI)
@Component
struct Counter {
  @State count: number = 0;
  
  build() {
    Column() {
      Text(`计数: ${this.count}`)
      Button('增加').onClick(() => this.count++)
    }
  }
}
// Android (Jetpack Compose)
@Composable
fun Counter() {
    var count by remember { mutableStateOf(0) }
    Column {
        Text("计数: $count")
        Button(onClick = { count++ }) { Text("增加") }
    }
}
// iOS (SwiftUI)
struct Counter: View {
    @State private var count = 0
    
    var body: some View {
        VStack {
            Text("计数: \(count)")
            Button("增加") { count += 1 }
        }
    }
}

可以看到,三大平台的声明式 UI 思想非常相似,学会一个,其他两个也能快速上手。

2.3 原生能力对比

鸿蒙提供了许多独有的原生能力:

能力 HarmonyOS Android iOS
分布式软总线 ✅ 原生支持 ❌ 需第三方 ❌ 需第三方
原子化服务 ✅ 原生支持 ❌ 不支持 ❌ 不支持
服务卡片 ✅ 原生支持 ✅ Widget ✅ Widget
握姿感应 ✅ 原生支持 ❌ 不支持 ❌ 不支持
隔空投送 ✅ 原生支持 ❌ 不支持 ✅ AirDrop
多设备协同 ✅ 原生支持 ❌ 需第三方 ✅ Handoff

第三部分:鸿蒙原生应用的独特优势

3.1 分布式软总线

分布式软总线是鸿蒙最核心的技术创新,它让多设备协同变得简单自然。

什么是分布式软总线?

想象一下,你家里有多个智能设备:手机、平板、电视、音箱、手表。传统方式下,每个设备都是独立的"孤岛",要让它们协同工作非常麻烦。

分布式软总线就像一条"高速公路",把所有设备连接起来:

┌─────────────────────────────────────────────────────────┐
│                    分布式软总线                          │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   📱 手机  ←→  📱 平板  ←→  💻 电脑  ←→  ⌚ 手表        │
│      ↑                                      ↑            │
│      └──────────────→  📺 电视  ←───────────┘            │
│                                                          │
└─────────────────────────────────────────────────────────┘

分布式软总线的应用场景:

  1. 跨设备任务流转
  • 手机上看到一半的视频,可以无缝"流转"到电视上继续看
  • 平板上编辑的文档,可以"流转"到电脑上继续编辑
  1. 多设备协同
  • 手机拍照,照片自动同步到平板和电脑
  • 手表检测到运动数据,自动同步到手机健康应用
  1. 分布式数据管理
  • 应用数据在多设备间自动同步
  • 用户无需手动传输文件

3.2 原子化服务

原子化服务是鸿蒙的另一个创新概念,它改变了用户使用应用的方式。

什么是原子化服务?

传统应用需要用户:下载 → 安装 → 打开 → 使用

原子化服务只需要:发现 → 使用

原子化服务的特点:

特点 说明
免安装 用户无需下载完整应用,即点即用
轻量化 服务包体积小,加载速度快
即用即走 用完即走,不占用存储空间
卡片入口 可以通过桌面卡片直接触达

原子化服务的应用场景:

  1. 扫码点餐:扫描餐厅二维码,直接打开点餐服务,无需下载 App
  2. 共享单车:扫描单车二维码,直接开锁骑行
  3. 快递查询:收到快递短信,点击链接直接查看物流信息
  4. 景区导览:到达景区,自动推送导览服务

3.3 服务卡片

服务卡片是鸿蒙桌面的重要组成部分,让用户无需打开应用就能获取信息。

服务卡片的优势:

┌─────────────────────────────────────────────────────────┐
│                      桌面                                │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│   │  天气卡片   │  │  日历卡片   │  │  音乐卡片   │     │
│   │  ☀️ 25°C   │  │  📅 今日    │  │  🎵 正在播放 │     │
│   │  晴转多云   │  │  3个会议    │  │  周杰伦-稻香 │     │
│   └─────────────┘  └─────────────┘  └─────────────┘     │
│                                                          │
│   ┌───────────────────────────────┐                     │
│   │        新闻卡片 (2x4)          │                     │
│   │  📰 今日头条新闻...           │                     │
│   └───────────────────────────────┘                     │
│                                                          │
└─────────────────────────────────────────────────────────┘

服务卡片的规格:

规格 尺寸 适用场景
1×2 小卡片 简单信息展示(天气、步数)
2×2 中卡片 常规信息展示(日历、音乐)
2×4 大卡片 丰富信息展示(新闻、待办)
4×4 超大卡片 复杂交互(地图、相册)

3.4 一次开发,多端部署

鸿蒙的"一次开发,多端部署"能力,让开发者可以用一套代码适配多种设备。

支持的设备类型:

设备类型 屏幕特点 交互方式
手机 竖屏为主,5-7英寸 触摸
平板 横屏为主,10-12英寸 触摸 + 键盘
折叠屏 可折叠,展开8英寸+ 触摸
2in1 可拆卸键盘,12英寸+ 触摸 + 键盘 + 鼠标
智慧屏 大屏,55英寸+ 遥控器 + 语音
手表 圆形/方形,1-2英寸 触摸 + 旋转表冠
车机 横屏,10-15英寸 触摸 + 语音

响应式布局示例:

// 根据屏幕宽度自动调整布局
@Entry
@Component
struct ResponsivePage {
  @StorageProp('currentBreakpoint') currentBreakpoint: string = 'md';
  
  build() {
    // 小屏:单列布局
    // 中屏:双列布局
    // 大屏:三列布局
    GridRow({
      columns: { sm: 1, md: 2, lg: 3 }
    }) {
      ForEach(this.items, (item) => {
        GridCol() {
          ItemCard({ item: item })
        }
      })
    }
  }
}

第四部分:「古今职鉴」项目介绍

本教程以「古今职鉴」项目为案例,这是一款探索古代官职与现代职业对应关系的趣味应用。

4.1 项目背景与创意来源

创意来源:

你是否好奇过:

  • 古代的"丞相"相当于现代的什么职位?
  • 如果穿越到古代,你会担任什么官职?
  • 古代的科举考试有多难?

「古今职鉴」就是为了回答这些有趣的问题而诞生的。

目标用户:

  • 对历史文化感兴趣的年轻人
  • 想了解古代官职制度的学生
  • 喜欢趣味测试的用户

核心价值:

  • 寓教于乐,传播传统文化
  • 通过古今对比,让历史更有趣
  • 提供互动体验,增强用户参与感

4.2 功能模块概览

「古今职鉴」包含以下核心功能模块:

模块 功能描述 技术亮点
职官词典 八朝官职百科全书 List 列表、搜索筛选、收藏功能
古今匹配 输入现代职业,匹配古代官职 匹配算法、动画效果
科举考试 六级考试闯关游戏 状态管理、计时器、成绩计算
性格测试 古今职业性格测试 问卷设计、结果计算、分享
新年习俗 八朝年俗展示 农历计算、弹窗、轮播
握姿祝福 左手来财右手来福 握姿感应、隔空投送
桌面卡片 年俗日历小组件 Form 服务卡片、定时更新

4.3 技术架构预览

┌─────────────────────────────────────────────────────────┐
│                    应用层 (Application)                  │
├─────────────────────────────────────────────────────────┤
│  entry/                                                  │
│  ├── pages/          # 页面组件(30+ 页面)              │
│  │   ├── MainPage.ets        # Navigation 容器          │
│  │   ├── HomePage.ets        # 首页                     │
│  │   ├── DictionaryPage.ets  # 职官词典                 │
│  │   ├── MatcherPage.ets     # 古今匹配                 │
│  │   ├── ExamGamePage.ets    # 科举考试                 │
│  │   └── ...                                            │
│  ├── common/         # 公共工具                          │
│  │   ├── Types.ets           # 类型定义                 │
│  │   ├── ThemeManager.ets    # 主题管理                 │
│  │   ├── StorageManager.ets  # 存储管理                 │
│  │   └── LunarDateUtil.ets   # 农历工具                 │
│  ├── data/           # 数据文件                          │
│  │   ├── QinDynastyPositions.ets   # 秦朝官职           │
│  │   ├── HanDynastyPositions.ets   # 汉朝官职           │
│  │   └── ...                                            │
│  └── widget/         # 桌面卡片                          │
│      └── pages/                                          │
│          ├── WidgetCard.ets        # 1x2 卡片           │
│          └── WidgetCard2x2.ets     # 2x2 卡片           │
├─────────────────────────────────────────────────────────┤
│                    框架层 (Framework)                    │
├─────────────────────────────────────────────────────────┤
│  ArkUI              # 声明式 UI 框架                     │
│  ArkTS              # 开发语言                           │
│  Navigation         # 路由系统                           │
│  AppStorage         # 全局状态管理                       │
│  Preferences        # 本地持久化存储                     │
├─────────────────────────────────────────────────────────┤
│                    能力层 (Capabilities)                 │
├─────────────────────────────────────────────────────────┤
│  MultimodalAwareness  # 握姿感应                         │
│  ShareKit             # 隔空投送                         │
│  Form                 # 服务卡片                         │
│  Web                  # WebView(ECharts 地图)          │
└─────────────────────────────────────────────────────────┘

4.4 项目截图预览

首页:

┌─────────────────────────────────────────┐
│  古今职鉴                          ⚙️   │
│  探索古代官职与现代职业的奇妙联系        │
├─────────────────────────────────────────┤
│                                          │
│  ┌─────────────┐  ┌─────────────┐       │
│  │  📚 职官词典 │  │  🔄 古今匹配 │       │
│  │  八朝官职百科│  │  找到你的古代│       │
│  └─────────────┘  └─────────────┘       │
│                                          │
│  ┌─────────────┐  ┌─────────────┐       │
│  │  🎓 科举考试 │  │  🧠 性格测试 │       │
│  │  六级考试闯关│  │  测测官场性格│       │
│  └─────────────┘  └─────────────┘       │
│                                          │
├─────────────────────────────────────────┤
│    🏠 首页      🔍 发现      👤 我的    │
└─────────────────────────────────────────┘

职官词典:

┌─────────────────────────────────────────┐
│  ← 🔍 搜索官职名称                       │
├─────────────────────────────────────────┤
│  ┌─────────────────────────────────────┐│
│  │     秦朝官制                         ││
│  │     三公九卿制度的起源               ││
│  └─────────────────────────────────────┘│
│  ● ○ ○                                   │
├─────────────────────────────────────────┤
│  [全部] [秦] [汉] [唐] [宋] [明] [清]   │
├─────────────────────────────────────────┤
│  ┌─────────────────────────────────────┐│
│  │ [1品]  丞相  [秦]                    ││
│  │ [文官] 百官之长,辅佐皇帝处理政务   ││
│  └─────────────────────────────────────┘│
│  ┌─────────────────────────────────────┐│
│  │ [1品]  太尉  [秦]                    ││
│  │ [武官] 掌管全国军事                  ││
│  └─────────────────────────────────────┘│
└─────────────────────────────────────────┘

本篇小结

通过本篇学习,你应该了解:

知识要点回顾

主题 要点
鸿蒙发展 2019年发布,2024年推出纯血鸿蒙 NEXT
市场机遇 10亿设备,700万开发者,蓝海市场
技术对比 ArkTS 基于 TypeScript,声明式 UI
独特优势 分布式软总线、原子化服务、服务卡片
项目介绍 「古今职鉴」7大功能模块

为什么选择鸿蒙?

  1. 市场机遇:早期入局,竞争较小
  2. 技术友好:前端开发者容易上手
  3. 华为支持:丰富的开发资源和推广支持
  4. 创新能力:分布式、原子化等独特优势

下一篇预告

第2篇 开发环境搭建:DevEco Studio 全攻略

下一篇我们将学习:

  • DevEco Studio 的下载与安装
  • SDK 配置与版本管理
  • 模拟器与真机调试配置
  • 创建第一个 HarmonyOS 项目
  • 项目结构深度解析

参考资料


*本教程基于「古今职鉴」真实项目编写,所有代码均经过实际验证。*


项目开源地址

https://gitcode.com/daleishen/gujinzhijian

Logo

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

更多推荐