IT之家 6 月 2 日消息 华为鸿蒙 HarmonyOS 官方表示,为了让大家快人一步,迅速从入门小白晋级技术大神,集结 HarmonyOS 技术专家,为应用开发者量身打造了一个路径最短、可实操性最强的学习路线。
IT之家获悉,本次资料包括学习 HarmonyOS 最新特性和界面开发、熟悉 HarmonyOS 系统框架,以及开发 HarmonyOS 应用。
目标
掌握 HarmonyOS 应用开发编程语言,了解 HarmonyOS 系统概述并搭建 HUAWEI DevEco Studio 集成开发环境 。
路径
在学习 HarmonyOS 之前,大家需要熟练使用编程语言。HarmonyOS 使用了 Java UI 和 JS UI 两种 UI 框架,开发者可自主选择 Java 或 JS 进行 HarmonyOS 应用开发。
・Java 编程语言
− 基本数据类型、变量和常量、运算符、表达式、条件分支结构、循环结构
− 字符串、数组、方法、正则表达式、基本排序算法
− 面向对象设计思想(抽象,封装,继承,多态)
− 异常体系结构(异常顶层继承结构;try/catch/finally;try with resources;
throw/throws;线程 / 线程池的异常默认处理器)
− 集合框架(集合接口级继承结构;基于 Tree/Linked/Hash 的集合;WeakReference 集合、集合大小初始化;Collection;Arrays)
− 输入输出流(常用 InputStream/OutputStream;常用 Reader/Writer、NIO)
− 多线程(Runnable;Callable;synchronized;notify/notifyAll/wait;sleep;线程的状态转换;volatile;线程池)
− 其他高级语言特性(网络编程、泛型、注解、序列化、反射机制、Java 虚拟机、Java 8、JSON 解析等)
・ JS 编程语言
− HML(HarmonyOS Markup Language,基本标签、表格标签、div 标签等)
− CSS(CSS3 基本语法、标签选择器、Id 选择器、Class 选择器、浮动、定位属性、盒子模型等)
− JavaScript(JS 基础语法、系统函数、自定义函数、匿名函数、常见事件、数组、字符串、日期对象等)
・ HarmonyOS 系统概述
− HarmonyOS 的系统定义、技术特性、系统安全等基本知识
− 应用开发的基础知识、应用配置文件、资源文件等
・ HUAWEI DevEco Studio 集成开发环境
− 下载并安装 HUAWEI DevEco Studio
https://developer.harmonyos.com/cn/develop/deveco-studio#download
− 注册华为开发者账号,真机运行应用还需申请调试证书
− 了解应用开发、编译构建、应用运行、应用调试、应用测试、应用发布等基本流程
了解应用开发、编译构建、应用运行、应用调试、应用测试、应用发布等基本流程之后,大家就可以正式开始 HarmonyOS 应用开发之旅了。
Tips
大家可以参考下面的资料,快速完成编程语言的学习:
− Java 学习资料:《Java 编程思想》、《Java 核心技术》、《Java 经典实例》等书籍
− JS 学习资料:《JavaScript 权威指南》、《JavaScript 高级程序设计》等书籍
如果你已经具备 Java 或 JS 相关的语言基础可以跳过本章节的学习;如果你是刚刚入门,建议先学习编程语言,夯实代码基础。
学习过程中遇到任何困难,也可前往 HarmonyOS 官方论坛发帖求助
https://developer.huawei.com/consumer/cn/forum/block/harmonyos
目标
HarmonyOS 界面开发,主要包括:
Ability 及其生命周期、公共事件与通知、HarmonyOS Java UI 组件应用、HarmonyOS JS UI 组件应用、HarmonyOS 多模输入,以及服务卡片的开发。
路径
恭喜大家已经渐入佳境,朝技术大牛勇敢地迈出了第一步。在这个阶段,我们将主要学习 HarmonyOS 的界面开发的系列知识:
・ Ability 及其生命周期
− Page Ability,用于提供与用户交互的能力
− Service Ability,用于提供后台运行任务的能力
− Data Ability,用于对外部提供统一的数据访问抽象
− Intent,对象之间传递信息的载体
・ 公共事件与通知
− 系统公共事件
− 自定义公共事件
− 消息通知机制
・ HarmonyOS Java UI 组件应用
− 常用组件的使用,包括 Button、Text、Image、ToastDialog、WebView 等
− 常用布局,包括 DirectionalLayout、DependentLayout、PositionLayout 等
− 自定义组件和自定义布局
− 基本的动画开发指导,如帧动画、数值动画、属性动画
− 可见可说相关开发
・ HarmonyOS JS UI 组件应用
− HML(HarmonyOS Markup Language)、CSS、JavaScript
− JS 的基本组件,包括基础组件、容器组件、媒体组件、画布组件等
− JS 的基本布局,学会如何添加容器
− 如何添加交互、动画、事件、页面路由焦点逻辑等
− JS FA(Feature Ability)调用 Java PA(Particle Ability)的机制
・ HarmonyOS 多模输入
− HarmonyOS 多模输入融合框架(传统按键、触屏等输入方式,新型语音等输入方式)
・ 服务卡片开发
− 服务卡片的开发,包括 Java 卡片和 JS 卡片
Tips
请大家多思考 HarmonyOS 背后的运行逻辑,如果还有一些疑惑,可前往 HarmonyOS 官方论坛发帖求助。
推荐参考下面的资料,可帮助你快速完成本阶段的学习:
− Java UI 框架常用组件和布局开发体验:帮助开发者了解 HarmonyOS Java UI 框架常见的组件和布局
− 基于 JS 通用组件的购物应用:使用 JS 开发一款简单的 HarmonyOS 购物应用
− 如何实现自定义组件:通过一个圆形抽奖转盘讲解如何实现 HarmonyOS 自定义组件
− IDE 模板:IDE 中已经集成了丰富的模板,均已标出使用何种语言进行编码,是你学习的宝库
本阶段学习完后,可以实现一些简单应用、实用卡片。
目标
在这个阶段,大家需要掌握 HarmonyOS 的新能力、新特性,包括分布式、AI、数据管理、设备管理等知识。
路径
恭喜大家,距离 HarmonyOS 技术大牛又近了一步!
通过前面两个阶段的学习,你们已经具备了基础的 HarmonyOS 应用开发的能力,可轻松实现一些简单应用、实用卡片的开发。
在本阶段,我们将开启新的学习篇章,进一步提升大家的 HarmonyOS 应用开发能力,开发更加酷炫,功能更加强大的应用。大家需要学习:
・ 分布式技术
− 分布式软总线:是分布式设备的通信基座,为设备提供了统一的分布式通信能力
− 分布式设备虚拟化:可以让多种设备共同形成一个超级虚拟终端
− 分布式任务调度:通过调用指定能力的分布式接口,实现跨设备能力调度
− 分布式数据服务:为应用程序提供不同设备间数据库数据分布式的能力
− 分布式文件服务:提供多设备之间的文件共享能力,能够在多个设备之间无缝获取文件
・ 数据管理
− 关系型数据库:提供给用户无需编写原生 SQL 语句就能进行数据增删改查的方法
− 对象关系映射数据库:通过将实例对象映射到关系上,实现使用操作实例对象的语法,来操作关系型数据库
− 轻量级偏好数据库:主要用于保存应用的一些常用配置,并不适合存储大量数据和频繁改变数据的场景
− 融合搜索:提供搜索引擎级的全文搜索能力,可支持应用内搜索和系统全局搜索
− 数据存储管理:提供存储设备(包含本地存储、SD 卡、U 盘等)的数据存储管理能力的开发
• AI
− 二维码生成:调用方可以通过二维码字节流生成二维码图片
− 通用文字识别:利用文字识别技术将图像信息转化为计算机等设备可以使用的字符信息的技术
− 图像超分辨率:提供适用于移动终端的 1x 和 3x 超分能力
− 文档检测校正:提供了文档翻拍过程的辅助增强功能,包含两个子功能:文档检测和文档校正
− 文字图像超分:文字图像超分辨率可以对包含文字内容的图像进行 9 倍放大(高宽各放大 3 倍)
− 分词:对于一段输入文本,可以自动进行分词,同时提供不同的分词粒度
− 词性标注:对于输入的一段文本,自动通过词性标注接口对其进行分词,并为分词结果中的每个单词标注一个正确的词性
− 助手类意图识别:对用户发送给设备的文本消息进行语义分析和意图识别
− IM 类意图识别:利用机器学习技术,针对用户短信或聊天类 App 等 IM 应用的文本消息进行内容分析,并识别出消息内容代表的用户意图
− 关键字提取:可以在大量信息中提取出文本想要表达的核心内容
− 实体识别:从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能
− 语音识别:将语音文件、实时语音数据流转换为汉字序列,准确率达到 90% 以上(本地识别 95%)
− 语音播报:将文本转换为语音并进行播报
・ 媒体
− 视频:视频编解码开发、视频播放、录制、提取等
− 图像:图像的编解码开发、位图操作等
− 相机:相机模块的开发和相关 API 的调用等
− 音频:音频的播放、采集、音量管理等
− 媒体会话管理:对媒体服务和界面进行解耦,使应用可以自由、高效地在不同的媒体之间完成切换
− 媒体数据管理:支持多媒体数据管理相关的功能开发,如:获取媒体元数据、截取帧数据等
・ 安全
− 权限:定义了不同开放范围与授权方式的权限来保护数据
− 生物特征识别:当前生物特征识别支持 2D 人脸识别、3D 人脸识别,可应用于设备解锁、应用登录、支付等身份认证场景
・ 网络与连接
− NFC:NFC 消息通知是 HarmonyOS 内部或者与应用之间跨进程通讯的机制
− 蓝牙:蓝牙是短距离无线通信的一种方式,HarmonyOS 蓝牙主要分为传统蓝牙和低功耗蓝牙
− WLAN:为用户提供 WLAN 基础功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相应服务
− 网络管理:应用可以调用 API 接口来使用指定网络进行数据传输
− 电话服务:电话服务系统提供了一系列的 API 用于获取无线蜂窝网络和 SIM 卡相关的一些信息
・ 设备管理
− 传感器:开发者根据传感器提供的 Sensor API,可以查询设备上的传感器,订阅传感器的数据
− 控制类小器件:控制类小器件指的是设备上的 LED 灯和振动器
− 位置:位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置
− 设置:应用程序可以根据自身拥有的权限对其进行操作
− 设备标识符:包括 NetworkID、DVID、UUID
Tips
这个阶段难度指数升高,请合理调整你的心境。“修炼”成功后,你对 HarmonyOS 的掌握将会上升到一个新的台阶。
推荐学习资料:
・ Sample 案例库:针对 HarmonyOS 的新能力、新特性,我们为你准备了丰富的 Sample 案例库,案例包含分布式、多线程、常用组件、相机等特性,第一期共 47 个案例,即将全部开源(收藏本文,代码链接随后更新)
・ Codelabs 开发者教程:结合智慧生活的七大典型场景,我们为你准备好了大量的进阶学习资料,目前已经上线了 20 + 个教程案例,你可以参考如下文档进行学习。
- 分布式技术是你需要重点学习的核心知识点,包括分布式任务调度(基于分布式的亲子早教系统)、分布式数据服务(如何使用分布式数据库)、分布式文件服务(HarmonyOS 分布式语音照相机);
- 数据管理部分,可以参考如何使用轻量级偏好数据库、基于 Data Ability 的关系型数据库操作方法进行学习;
- HarmonyOS 为你提供了开箱即用的 AI 能力,可以参考基于 AI 能力的通用文字识别、基于 AI 能力的语音播报系统进行学习;
- 媒体部分可以参考基于图像模块实现图库图片的四种常见操作、实现一个简易播放器进行图像和视频播放器的学习;
- 安全可以参考如何使用 HarmonyOS 面部识别能力进行学习;
- 设备管理可以参考如何使用 BLE 实现设备间通信进行学习;
学完本阶段后,大家能开发出以下的案例效果:
▲智慧出行:导航信息在手机、手表、车机之间来回流转
▲智能家居:手机可以控制台灯亮度
▲手机手表背单词:手表显示单词列表,手机显示单词详情
▲分布式照相机:右侧手机拍摄的照片可以立马流转到左侧手机上
▲益智拼图游戏:左右两台手机可以协同拼图
目标
本阶段学习是迈向“大神”的进阶之路,需要着重学习 HarmonyOS 的底层原理,包括大量驱动和框架代码。
路径
成为技术大牛已近在咫尺了!完成本阶段的学习,你的 HarmonyOS 应用开发能力将超越 95% 以上的开发者。
HarmonyOS 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。
系统功能按照“系统> 子系统 > 功能 / 模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能 / 模块。
在本阶段,你需要阅读 OpenHarmony 开源项目的相关代码,还需要有 C/C++ 的相关背景知识,请重点掌握以下内容:
・ C/C++ 编程语言
− 基本语法,包括数据类型、变量、指针、字符串、数组、结构体、动态库等
− 面向对象的编程思想,包括类和对象,类的继承和派生、多态等
− 其他语言特性,包括函数模板、类模板,异常、I/O 流、STL 等
・ 内核层
− 内核子系统:HarmonyOS 采用多内核设计,支持针对不同资源受限设备选用适合的 OS 内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程 / 线程管理、内存管理、文件系统、网络管理和外设管理等
− 驱动子系统:硬件驱动框架(HDF)是 HarmonyOS 硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架
・系统服务层
系统服务层是 HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
− 系统基本能力子系统集:为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等子系统组成
− 基础软件服务子系统集:为 HarmonyOS 提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV 等子系统组成
− 增强软件服务子系统集:为 HarmonyOS 提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统组成
− 硬件服务子系统集:为 HarmonyOS 提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT 专有硬件服务等子系统组成
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
・ 框架层
−HarmonyOS 应用开发提供了 Java/C/C++/JS 等多语言的用户程序框架和 Ability 框架
−两种 UI 框架(包括适用于 Java 语言的 Java UI 框架、适用于 JS 语言的 JS UI 框架)
−各种软硬件服务对外开放的多语言框架 API
− 根据系统的组件化裁剪程度,HarmonyOS 设备支持的 API 也会有所不同
・ 应用层
−应用层包括系统应用和第三方非系统应用
−HarmonyOS 的应用由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成
Tips
此阶段适合有丰富应用开发经验的开发者进行学习,你可以接触到大量的系统底层源码,这些代码都将陆续开源,请持续关注。学完之后,大家就可以试着做一些子系统的开发了。
・ 学习举例:分布式软总线子系统
− 能力了解:阅读分布式软总线子系统.md,了解该子系统的关键能力
− 阅读代码:分布式软总线子系统的相关代码都将开源到“/foundation/communication”目录下,你可以下载相关代码进行阅读
− 提交代码:如果你在代码阅读过程中有一些自己的优化改进,可以参与贡献,具体可以了解如何贡献链接
− 参与社区:大神还可以参与 OpenHarmony 社区治理、开发者贡献指南、开发者贡献协议、社区交流等内容,具体可以了解社区介绍链接
点此链接参与 HarmonyOS 开发者成长计划活动。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。