[ 2025.4.22更新 ]

鸿蒙工程师学习线路(七阶段进化流)

🎯 目标:掌握 HarmonyOS 应用与系统开发所需技能,涵盖 OpenHarmony 架构、分布式能力、原生语言 ArkTS、应用框架与系统接口,具备独立开发鸿蒙端应用或设备驱动能力。


第一阶段:系统架构与发展认知

目标:理解鸿蒙系统的定位、构成与发展路线,避免一问三不知

1. 鸿蒙简介

  • HarmonyOS(商用) vs OpenHarmony(开源)
  • 面向全场景、全终端、全生态:手机、穿戴、TV、IoT

2. 系统架构

  • 微内核架构:驱动分离、模块解耦
  • 三层架构:内核层、基础服务层、应用框架层
  • 核心特性:分布式软总线、元服务、方舟引擎

3. 面试常问

  • 鸿蒙和安卓、iOS 最大的区别是?
  • 微内核比宏内核好在哪?

第二阶段:开发环境与语言基础

目标:能搭建环境、写出 Hello World,不被 DevEco Studio 吓到

1. 开发语言选型

  • ArkTS(方舟类型系统 TypeScript 超集)
  • Java(部分兼容)、C/C++(底层模块)

2. 开发工具链

  • DevEco Studio:鸿蒙官方 IDE
  • OpenHarmony 编译构建流程:gn + ninja
  • 模拟器 / 真机调试(HiSpark、Watch、Tablet)

3. 入门实战

  • 创建鸿蒙项目,理解 UI 页面、逻辑控制结构
  • 熟悉 UI 描述语言(类似前端 JSX 写法)

第三阶段:ArkTS 与 UI 开发

目标:掌握鸿蒙应用开发核心语言 ArkTS 与 UI 构建方式

1. ArkTS 语法体系

  • 类型系统、组件生命周期、状态管理
  • 事件绑定、条件渲染、组件通信

2. UI 构建

  • 基础组件:Text, Button, Image, List, Scroll
  • 自定义组件与复用
  • 多设备适配(响应式布局)

3. 面试点

  • ArkTS 与 TypeScript 的区别?
  • 如何实现组件间的数据通信?

第四阶段:分布式能力与多端协同

目标:理解鸿蒙最具特色的分布式特性,掌握常见多端通信场景

1. 分布式技术核心

  • 分布式调度:一次开发,多端部署
  • 分布式数据管理:统一账号、统一文件系统
  • 分布式 UI 组件流转:页面流转

2. 分布式能力 API

  • DeviceManager:发现、连接设备
  • ContinuationManager:页面/任务流转接口
  • 文件同步、多端协作(如跨设备输入)

3. 面试必考

  • 怎么实现从手机平板“拖一拖”页面就过去?
  • 分布式软总线的工作原理?

第五阶段:系统能力、权限与设备接口

目标:掌握鸿蒙应用调用系统服务的方式与权限管理机制

1. 系统接口调用

  • 媒体能力:拍照、相册、音频播放
  • 网络能力:HTTP、Socket、蓝牙、NFC
  • 设备能力:传感器、电池、定位、联系人

2. 权限机制

  • 声明权限、动态请求
  • 系统能力白名单与运行时授权机制

3. 面试常问

  • 如何实现蓝牙配对与数据传输?
  • 系统能力调用失败如何调试?

第六阶段:应用发布、模块化与组件化开发

目标:理解鸿蒙应用的打包机制,掌握模块拆分与组件通信策略

1. 模块与能力划分

  • 应用结构:entry + feature module
  • Ability(页面)与 ServiceAbility(后台服务)

2. 应用打包与发布

  • HAP 包打包机制
  • 安装包签名、权限配置、升级策略
  • 应用市场发布流程(AppGallery)

3. 面试加分项

  • 鸿蒙中的 FA 和 PA 有什么区别?
  • 如何拆分一个大型应用为多个 feature 模块?

第七阶段:OpenHarmony 系统开发与设备适配

目标:面向系统层开发者,掌握驱动开发与底层配置流程

1. 编译系统

  • OpenHarmony 编译架构(build/lite)
  • 设备适配流程(build.json、config.json)

2. 驱动开发基础

  • 外设驱动接口模型
  • HAL 层通信机制
  • 基于 Hi3861 等芯片开发实践

3. 面试挑战题

  • OpenHarmony 怎么实现内核隔离?
  • 如何开发一个适用于 IoT 设备的传感器驱动?

附录:面试高频问题 Top 10

  1. 鸿蒙系统和 Android 在底层架构上有哪些不同?
  2. 什么是 ArkTS?为什么不用 JS/Java?
  3. 如何实现一个“扫码-设备连接-控制”分布式功能?
  4. 页面如何在两个鸿蒙设备间流转?你调用了哪些接口?
  5. OpenHarmony 编译过程怎么走的?
  6. 鸿蒙的 UI 是原生还是 WebView 渲染?
  7. ServiceAbility 是常驻进程吗?怎么控制?
  8. 能否脱离 DevEco Studio 使用 VSCode 做开发?
  9. 鸿蒙的事件机制和 Vue/React 有哪些相似之处?
  10. 模拟器调试和真机调试遇到的问题有哪些?怎么排查?

推荐资料 & 工具

  • 📘 官方文档:https://developer.harmonyos.com

  • 🧠 代码实战平台:https://gitee.com/openharmony

  • 🛠️ 开发工具:

    • DevEco Studio、ArkTS语法插件、鸿蒙 SDK
    • Hi3861/Hi3516 芯片实验板,适配设备测试用
  • 📚 学习项目:

    • 鸿蒙轻应用开发实战:计时器、记事本、蓝牙传输
    • 多设备协同项目:分布式相册、音视频通话、小型 IoT 控制面板
去1:1私密咨询