第1章 HarmonOS介绍
关于鸿蒙HarmonOS系统
HarmonyOS是一款面向未来、面向全场景的分布式操作系统,借助HarmonyOS全场景分布式系统和设备生态,定义全新的硬件、交互和服务体验。
本课程采用最新的HarmonyOS 3版本作为基础,详细介绍如何基于HarmonyOS 3来进行应用开发,包括HarmonyOS架构、DevEco Studio、应用结构、Ability、UI开发、公共事件、窗口管理、网络编程、安全管理、数据管理等多个主题,还介绍如何从0开始开发计算器、视频播放器、购物应用、微信应用等。
第1章 HarmonOS介绍
本章简介
本章介绍HarmonyOS产生的历史背景、特点及开发环境的搭建,并演示如何通过DevEco Studio来初始化HarmonyOS项目结构。
本章内容
1.1 HarmonyOS概述
1.2 HarmonyOS的特征
1.3 HarmonyOS 3的新特性。
1.4 DevEco Studio的安装
1.5 创建第一个HarmonyOS应用
1.6 应用工程结构介绍
小结
习题
1.1 HarmonyOS介绍
2022年11月4日,华为开发者大会2022正式在华为东莞松山湖基地拉开帷幕,华为如期为消费者带来了众多软件创新,其中最受期待的莫过于华为HarmonyOS 3.1开发者尝鲜版本的面市。(目前最新版是HarmonyOS 4.0)
1.1.1什么是HarmonyOS
HarmonyOS也称为鸿蒙系统,或者鸿蒙OS,是一款面向万物互联时代的、全新的分布式操作系统。
在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR眼镜等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
举例来说,当用户走进厨房,用HarmonyOS手机一碰微波炉,就能实现设备极速联网;用HarmonyOS手机碰一下豆浆机,就能快速实现无屏变有屏。
自HarmonyOS诞生以来,经过3年多的发展,终于迎来了HarmonyOS 3。HarmonyOS 3也带来了更多惊喜,全新推出应用开发Stage模型,并在ArkTS语言、应用程序框架、Web、ArkUI等子系统能力方面有所更
目前鸿蒙系统最新版本是4.0,但在实际开发中应用还并没有普及开来。
1.1.2 HarmonyOS应用开发
为了进一步扩大HarmonyOS的生态圈,面对广大的硬件设备厂商,HarmonyOS通过SDK、源代码、开发板/模组和HUAWEI DevEco Studio等装备共同构成了完备的开发平台与工具链,让HarmonyOS设备开发易如反掌。
应用创新是一款操作系统发展的关键,应用开发体验更是如此。在一条完整的应用开发生态链中,应用框架、编译器、IDE、API/SDK都是必不可少的。为了赋能开发者,HarmonyOS提供了一系列构建全场景应用的完整平台工具链与生态体系,可以助力开发者,让应用能力可分、可合、可流转,轻松构筑全场景创新体验。
1.2 HarmonyOS的特征
本节介绍HarmonyOS的特征。
1.2.1 硬件互助,资源共享
1.2.2 一次开发,多端部署
1.2.3 统一OS,弹性部署
1.2.1 Linux开发机配置要求
HarmonyOS把各终端硬件的能力虚拟成可共享的能力资源池,让应用通过系统调用其所需的硬件能力。在这个架构下,硬件能力类似于活字印刷术中的一个个单字字模,可以被无限次重复使用。简单来说,各终端实现了硬件互助,资源共享。应用拥有了调用远程终端的能力,像调用本地终端一样方便,而用户收获一个多设备组成的超级终端。推荐使用云服务实践Linux环境的FFmpeg编程,比如华为云的EulerOS(欧拉系统)。
分布式软总线
分布式设备虚拟化
分布式数据管理
分布式任务调度
分布式连接能力
1.2.2 一次开发,多端部署
1.2.3 统一OS,弹性部署
HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。
支持各组件的选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。
支持组件内功能集的配置(组件可大可小):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。
支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。
1.3 HarmonyOS 3的新特性
HarmonyOS 3.1全新推出了应用开发Stage模型,并在ArkTS语言、应用程序框架、Web、ArkUI等子系统能力方面有所更新或增强。
1.3.1 Ability组件的生命周期
1.3.2 ArkUI开发框架
1.3.3 ArkTS编程语言
1.3.4 ExtensionAbility机制
HarmonyOS 3.1开放的功能包括:
Ability框架新增Stage开发模型,包含Stage模型生命周期管理、调度、回调、上下文获取、鉴权等。同时增强了应用的运行管理能力。
ArkUI开发框架增强了声明式Canvas/XComponent组件能力,增强了组件布局能力及状态管理能力,优化了部分组件的易用性。
应用包管理新增查询应用、Ability和ExtensionAbility相关属性的接口。
公共基础类库新增支持Buffer二进制读写。
Web服务新增支持文档类Web应用的文档预览和基础编辑功能,以及Cookie的管理和存储管理。
图形图像新增支持YUV、WebP图片编解码等能力;新增Native Vsync能力,支持自绘制引擎自主控制渲染节奏。
媒体服务新增相机配置与预览功能。
窗口服务新增Stage模型下窗口相关接口,增强了窗口旋转能力,增强了避让区域查询能力。
全球化服务新增支持时区列表、音译、电话号码归属地等国际化增强能力。
公共事件基础能力增强,commonEvent模块变更为commonEventManager。
资源管理服务新增资源获取的同步接口,新增基于名称查询资源值的接口,新增number、float资源类型查询接口,新增Stage模型资源查询方式。
输入法服务新增输入法光标方向常量。
1.3.1 Ability组件的生命周期
1.3.2 ArkUI开发框架
基于ArkTS的声明式开发范式的方舟开发框架(ArkUI)是一套开发极简、高性能、跨设备应用的UI开发框架,支持开发者高效地构建跨设备应用UI界面。
1.3.3 ArkTS编程语言
HarmonyOS提供了支持多种开发语言的API,供开发者进行应用开发,支持的开发语言包括ArkTS、JS(JavaScript)、C/C++ 、Java。
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS基于TypeScript(简称TS)语言扩展而来,是TS的超集。这也是ArkTS的原名叫eTS的原因,它是extend TypeScript的简写。
ArkTS继承了TS的所有特性,并且ArkTS在TS基础上还扩展了声明式UI能力,让开发者以更简洁、更自然的方式开发高性能应用。
1.3.4 ExtensionAbility机制
不同于页面展示的Ability,ExtensionAbility提供的是一种受限的运行环境。
ExtensionAbility组件具有如下特点:
运行在独立于主进程的单独进程中,与主进程无IPC(Inter-Process Communication,进程间通信),但共享一个存储沙箱。
独立的Context提供基于相应业务场景的API能力。
由系统触发创建,应用不能直接创建。
ExtensionAbility和进程的生命周期受系统管理。
1.4 DevEco Studio的安装
要想快速体验HarmonyOS应用开发,IDE必不可少,而DevEco Studio是华为官方指定的HarmonyOS集成开发环境。
本节介绍DevEco Studio的安装步骤。
1.4.1 下载DevEco Studio
目前,HarmonyOS专属IDE的新版本为DevEco Studio 3.1 Release,可以从HarmonyOS官方网站免费下载使用。
DevEco Studio支持Windows(64-bit)、Mac(Intel)两个操作系统。
以Windows(64-bit) 操作系统为例,下载获得devecostudio-windows-3.1.0.500.zip压缩包。解压该压缩包,就能得到一个deveco-studio-3.1.0.500.exe安装文件。
1.4.2 安装DevEco Studio
双击deveco-studio-3.1.0.500.exe文件执行安装。DevEco Studio支持Windows(64-bit)、Mac(Intel)两个操作系统。
1.4.3 配置DevEco Studio
双击DevEco Studio桌面上的快捷方式以启动DevEco Studio。
1.5 创建第一个HarmonyOS应用
本节将演示如何基于DevEco Studio开发第一个HarmonyOS应用。
1.5.1 选择创建新项目
1.5.2 选择模板
1.5.3 配置项目信息
配置项目信息,比如项目名称、包名、位置、SDK版本等
1.5.4 自动生成工程代码
1.5.5 预览项目
1.5.6 运行项目
1.6 应用工程结构介绍
1.6.2 entry模块级目录
1.6.3 配置文件
1. app.json5
AppScope下的app.json5是应用的全局配置文件,用于存放应用公共的配置信息。
{
"app": {
"bundleName": "com.waylau.hmos.arkuihelloworld",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name",
"distributedNotificationEnabled": true
}
}
2. module.json5
依次打开entry→src→main文件夹,其下的module.json5是模块的配置文件,包含当前模块的配置信息。
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"phone"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
{
"name": "EntryAbility",
"srcEntrance": "./ets/entryability/EntryAbility.ts",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"visible": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
]
}
}
3. main_pages.json
依次打开src→main→resources→base→profile文件夹,其下的main_pages.json文件保存的是页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置。
1.7 总结
本章主要介绍了HarmonyOS的概念、背景、特征,以及如何通过DevEco Studio来创建HarmonyOS项目。
本章也详细介绍了HarmonyOS应用工程结构的含义。
1.8 习题
- 判断题
(1)main_pages.json存放页面page路径配置信息。(对 )
(2)DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(对 ) - 单选题
在Stage模型中,下列配置文件属于AppScope文件夹的是?(C )
A. main_pages.json B. module.json5
C. app.json5 D. package.json - 多选题
(1)如何在DevEco Studio中创建新项目?( ABC )
A. 在计算机上创建一个新文件,并将其命名为“new harmonyOS项目”
B. 如果已打开项目,从DevEco Studio菜单选择File→New→Create Project
C. 如果第一次打开DevEco Studio,在欢迎页单击Create new Project按钮
(2)module.json5配置文件中包含以下哪些信息?(ABCD )
A. Ability的相关配置信息 B. 模块名
C. 应用的版本号 D. 模块类型