前言
对于 IT 技术人员而言,HarmonyOS 应用开发的时代已经来临。随着华为鸿蒙系统的不断迭代和生态的逐步完善,鸿蒙正逐渐在市场上占据重要地位。根据最新数据,鸿蒙系统在中国的市场份额已超过 16%,成为继 Android 和 iOS 之后的第三大智能手机操作系统。华为积极推动鸿蒙生态的建设,吸引了众多开发者和合作伙伴的加入,鸿蒙生态设备超过 8 亿台,开发者达到 220 万+,API 日调用 590 亿次+,开发工具 DevEco 活跃用户数 40 万+。
如果你还没有业内人士的指点,不知道怎么开始,找不到合适的学习方法,这份整理好的鸿蒙学习路线图及核心资料将为你提供指引。这些资料涵盖了从基础到进阶的全方位内容,旨在帮助你快速掌握 HarmonyOS 应用开发的核心技能,抓住行业发展的新机遇。
鸿蒙学习路线图
本路线图适合以下两类人群:
- IT 开发人员:想要拓展职业边界,享受新技术带来的溢价红利。
- 零基础小白:鸿蒙爱好者,希望从 0 到 1 学习,增加一项技能。
HarmonyOS 4.0 APP Developer
这是入门的基础阶段,重点在于熟悉开发环境和基本的应用构建流程。开发者需要掌握 DevEco Studio 的使用,理解项目结构,并能够运行第一个 Hello World 应用。
OpenHarmony 5.0 Next 视音频
进入进阶阶段,重点学习多媒体能力。包括音视频播放、录制、处理以及相关的 API 调用。这部分内容对于开发娱乐类或通讯类应用至关重要。
OpenHarmony 5.0 Next 进阶
深入系统特性,学习分布式软总线、多端协同等高级功能。掌握如何在不同设备间进行任务流转和数据同步,实现真正的万物互联体验。
OpenHarmony 5.0 Next 分布式
专注于分布式架构的开发。理解分布式数据管理、分布式任务调度等核心概念,学会构建跨设备的统一应用体验。
学习资料详解
《鸿蒙零基础入门学习指南》
一、快速入门
适用于 HarmonyOS 应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用,快速了解工程目录的主要文件,熟悉 HarmonyOS 应用开发流程。
- 开发准备:安装 DevEco Studio,配置 SDK,申请开发者账号。
- 构建第一个 ArkTS 应用(Stage 模型):学习 Stage 模型的入口 Ability 创建,理解 UIAbility 的生命周期。
- 构建第一个 ArkTS 应用(FA 模型):对比 FA 模型与 Stage 模型的区别,掌握旧版应用的迁移思路。
- 构建第一个 JS 应用(FA 模型):了解基于 JavaScript 的轻量级开发模式及其适用场景。
二、开发基础知识
- 应用程序包基础知识:理解 HAP 包的结构,签名机制以及发布流程。
- 应用配置文件(Stage 模型):深入解析 module.json5 中的权限声明、组件配置及依赖关系。
- 应用配置文件概述(FA 模型):掌握 config.json 的配置项含义,确保应用合规运行。
三、资源分类与访问
应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。
- 资源分类与访问:学习 resources/base/media, resources/base/element 等目录结构。
- 创建资源目录和资源文件:规范命名资源文件,支持多语言、多分辨率适配。
- 资源访问:掌握在代码中通过 R 对象或 Context 获取资源的方法。
四、学习 ArkTs 语言
ArkTS 是 HarmonyOS 优选的主力应用开发语言。ArkTS 围绕应用开发在 TypeScript(简称 TS)生态基础上做了进一步扩展,继承了 TS 的所有特性,是 TS 的超集。因此,在学习 ArkTS 语言之前,建议开发者具备 TS 语言开发能力。
- 初识 ArkTS 语言:了解静态类型检查的优势,以及其相对于 JS 的性能提升。
- 基本语法:掌握变量声明、函数定义、类与接口的基本用法。
- 状态管理:学习@State, @Prop, @Link 等装饰器,实现组件间的数据响应式更新。
- 其他状态管理:探索@Provide/@Consume 以及全局状态管理方案。
- 渲染控制:理解异步渲染机制,优化界面刷新性能。
《鸿蒙开发学习之 UI》
一、方舟开发框架(ArkUI)概述
ArkUI 是鸿蒙原生的 declarative UI 框架。它提供了丰富的组件库和布局能力,支持一次开发多端部署。
二、基于 ArkTS 声明式开发范式
- UI 开发(ArkTS 声明式开发范式)概述:理解声明式编程思想,关注'是什么'而非'怎么做'。
- 开发布局:掌握 Row, Column, Stack, Flex 等布局容器,实现复杂的界面排列。
- 添加组件:熟练使用 Text, Image, Button, Input 等基础组件。
- 显示图片:学习加载本地图片、网络图片以及图片裁剪、缩放策略。
- 使用动画:利用 Transition 和 Animation 模块,为交互添加流畅的动效。
- 支持交互事件:绑定点击、长按、滑动等事件监听器。
- 性能提升的推荐方法:避免不必要的重绘,合理使用 LazyForEach 处理列表。
三、兼容 JS 的类 Web 开发范式
- 概述:介绍基于 ArkWeb 的混合开发模式。
- 框架说明:理解 WebView 在鸿蒙中的应用限制与优势。
- 构建用户界面:使用 HTML/CSS/JS 构建部分界面。
- 常见组件开发指导:封装原生组件供 Web 层调用。
- 动效开发指导:结合 CSS3 动画与原生动画。
- 自定义组件:开发可复用的 Web 组件。
《鸿蒙开发学习之 Web》
Web 组件概述
在鸿蒙应用中集成 Web 内容的能力,允许开发者加载远程页面或本地 HTML 文件。
使用 Web 组件加载页面
演示如何通过 ArkTS 代码实例化 Web 组件并设置 URL。
设置基本属性和事件
- 设置深色模式:适配系统深色主题。
- 上传文件:实现 Web 页面调用相机或相册选择文件。
- 在新窗口中打开页面:处理外部链接跳转逻辑。
- 管理位置权限:请求并处理地理位置授权。
在应用中使用前端页面 JavaScript
- 应用侧调用前端页面函数:通过 web.postMessage 发送消息。
- 前端页面调用应用侧函数:通过 web.onMessage 接收回调。
- 建立应用侧与前端页面数据通道:实现双向数据绑定。
- 管理页面跳转及浏览记录导航:控制历史栈。
- 管理 Cookie 及数据存储:持久化 Web 会话信息。
- 自定义页面请求响应:拦截特定 URL 请求。
- 使用 Devtools 工具调试前端页面:利用 Chrome DevTools 调试 Web 视图。
ArkTS 语言基础类库概述
涵盖并发、容器、XML 处理等基础库的使用。
并发
- 并发概述:理解主线程与子线程的概念。
- 使用异步并发能力进行开发:使用 Promise 和 async/await。
- 使用多线程并发能力:操作 TaskPool 和 Worker。
- 容器类库:List, Map, Set 等数据结构。
- XML 生成、解析、与转换:处理结构化数据。
- 通知:系统通知栏的管理。
窗口管理
- 窗口开发概述:多窗口支持。
- 管理应用窗口(Stage 模型):WindowStage 的操作。
- 管理应用窗口(FA 模型):Window 对象的配置。
WebGL
- 概述:3D 图形渲染基础。
- WebGL 开发指导:在鸿蒙设备上绘制 3D 场景。
媒体
- 媒体应用开发概念:音视频编解码。
- 图片:图片格式支持与压缩。
安全
- 访问控制:权限模型详解。
- ohos.permission.USE_BLUETOOTH:蓝牙使用权限。
- ohos.permission.DISCOVER_BLUETOOTH:蓝牙发现权限。
- ohos.permission.MANAGE_BLUETOOTH:蓝牙管理权限。
- ohos.permission.INTERNET:网络访问权限。
网络与连接
- 网络管理:网络连接状态监测。
- IPC 与 RPC 通信:进程间通信机制。
电话服务
- 电话服务开发概述:拨号与通话管理。
- 跳转拨号页面:唤起系统拨号盘。
- 获取当前蜂窝网络信号信息:读取网络状态。
数据管理
- 数据管理概述:Preferences 与 RelationalStore。
- 应用数据持久化:保存用户偏好设置。
- 场景介绍:典型数据使用场景。
- 运作机制:数据库事务处理。
- 约束限制:沙箱机制下的存储限制。
- 接口说明:常用 API 文档。
文件管理
- 文件管理概述:内部存储与外部存储。
- 应用文件:私有文件目录。
- 用户文件:公共文件目录。
- 分布式文件系统:跨设备文件同步。
后台任务管理
- 后台任务总体概述:JobScheduler。
- 短时任务:一次性后台执行。
- 长时任务:持续运行的服务。
- 延时任务:定时触发任务。
- 代理提醒:闹钟与提醒事项。
设备管理
- USB 服务:OTG 支持。
- 位置服务:GPS 与基站定位。
- 传感器:加速度计、陀螺仪等。
- 分布式跟踪开发指导:设备发现与追踪。
- 错误管理:异常捕获与日志上报。
国际化
- 国际化开发概述:多语言支持。
- Intl 开发指导:日期、数字格式化。
- I18n 开发指导:资源文件的多语言切换。
应用测试
Native API 相关指导
- Native API 在应用工程中的使用指导:C++ 代码集成。
- Drawing 开发指导:2D 绘图引擎。
- Rawfile 开发指导:原始文件访问。
- NativeWindow 开发指导:底层窗口操作。
《鸿蒙开发学习之应用模型》
应用模型概述
- 应用模型的构成要素:Ability, Extension, Service 等。
- 应用模型解读:FA 模型与 Stage 模型的演进历程。
Stage 模型开发指导
- Stage 模型开发概述:以 UIAbility 为核心的新模型。
- Stage 模型应用组件:ExtensionAbility 的使用。
FA 模型开发指导
- FA 模型开发概述:Feature Ability 与 Particle Ability。
- FA 模型应用组件配置:AbilityConfig 的设置。
- 进程模型:单进程与多进程策略。
- 线程模型:主线程与工作线程分配。
结语
掌握上述内容后,开发者将具备独立开发高质量鸿蒙应用的能力。建议结合实际项目练习,深入理解系统机制,积极参与开源社区,共同推动鸿蒙生态的发展。