鸿蒙开发实例 |搭建环境

news2025/1/12 23:11:02

 

2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统;2020年9月推出了鸿蒙2.0,全面使能全场景生态,具备跨设备、服务流转、极速直达、可视可说、隐私安全五大能力。在2021年6月2日的华为新品发布会中,鸿蒙手机操作系统正式登场,引起社会媒体的广泛关注,同时也掀起了国内更新鸿蒙操作系统和学习鸿蒙开发的浪潮。

本文主要介绍鸿蒙操作系统开发入门,从鸿蒙操作系统特征、技术架构、技术特性等方面介绍什么是鸿蒙操作系统。开发方面介绍了开发环境搭建、创建鸿蒙应用、部署鸿蒙应用到模拟器。

01、鸿蒙系统概述

传说中国神话的远古时代,在盘古昆仑山开天辟地之前,世界是一团混沌的元气,这种自然的元气叫作鸿蒙,因此人们把那个时代称作鸿蒙时代,后来该词也常被用来泛指远古时代。2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统(HarmonyOS或HongmengOS)。根据官方的定义,鸿蒙系统是一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。

分析

鸿蒙操作系统与安卓操作系统比较相似,但也具有自身的优势。本节主要从系统特征、技术架构和技术特性等方面来分析鸿蒙操作系统。

1鸿蒙操作系统特征

华为鸿蒙操作系统的优点是流畅度较高,跨平台适用。这套系统主要是基于微内核的全场景分布式操作系统,可以按照需要进行扩展,由此来实现更为广泛的系统的安全性。它的主要特点是很低的时延,甚至可到毫秒级乃至亚毫秒级。在传统的单设备系统能力的基础上,鸿蒙操作系统提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。

鸿蒙操作系统具有以下三大特征。

(1) 搭载该操作系统的设备在系统层面融为一体,形成超级终端,让设备的硬件能力可以弹性扩展,实现设备之间硬件互助,资源共享。

对消费者而言,鸿蒙操作系统能够将生活场景中的各类终端进行能力整合,实现不同终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备,提供流畅的全场景体验。

(2) 面向开发者,实现一次开发,多端部署。

对应用开发者而言,鸿蒙操作系统采用了多种分布式技术,使应用开发与不同终端设备的形态差异无关,从而让开发者能够聚焦上层业务逻辑,更加便捷、高效地开发应用。

(3) 一套操作系统可以满足不同能力的设备需求,实现统一操作系统,弹性部署。

对设备开发者而言,鸿蒙操作系统采用了组件化的设计方案,可根据设备的资源能力和业务特征灵活裁剪,满足不同形态终端设备对操作系统的要求。

鸿蒙操作系统提供了支持多种开发语言的API,供开发者进行应用开发。支持的开发语言包括Java、XML(Extensible Markup Language)、C/C++、JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmongOS Markup Language)。

2鸿蒙操作系统技术架构

鸿蒙操作系统整体遵从分层设计,从下向上依次为: 内核层、系统服务层、应用框架层和应用层。系统功能按照“系统→子系统→功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。鸿蒙操作系统技术架构如图1所示。

■ 图1 鸿蒙操作系统技术架构

1. 内核层

(1) 内核子系统。鸿蒙操作系统采用多内核设计,支持针对不同资源受限设备选用适合的操作系统内核。内核抽象层(Kernel Abstract Layer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

(2) 驱动子系统。鸿蒙操作系统驱动框架(HDF)是鸿蒙操作系统硬件生态开放的基础,提供 统一外设访问能力和驱动开发、管理框架。

2. 系统服务层

系统服务层是鸿蒙操作系统的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分。

(1) 系统基本能力子系统集: 为分布式应用在鸿蒙操作系统多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时子系统提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。

(2) 基础软件服务子系统集: 为鸿蒙操作系统提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP&DV 等子系统组成。

(3) 增强软件服务子系统集: 为鸿蒙操作系统提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统组成。

(4) 硬件服务子系统集: 为鸿蒙操作系统提供硬件服务,由位置服务、生物特征识别、穿戴专 有硬件服务、IoT专有硬件服务等子系统组成。

根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

3. 应用框架层

应用框架层为鸿蒙操作系统的应用程序提供了 Java/C/C++/JavaScript等多语言的用户程序框架 Ability 框架,以及各种软硬件服务对外开放的多语言框架 API; 同时为采用鸿蒙操作系统的设备提供了 C/C++/JavaScript等多语言的框架 API,不同设备支持的 API 与系统的组件化裁剪程度相关。

4. 应用层

应用层包括系统应用和第三方非系统应用。鸿蒙操作系统的应用由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成。其中,FA 有 UI 界面,提供与用户交互的能力; 而 PA 无 UI 界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA 开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

3鸿蒙操作系统技术特性

1. 硬件互助,资源共享

1) 分布式软总线

分布式软总线是多种终端设备的统一基座,为设备之间的互连互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。分布式软总线示意图见图2。

 

■ 图2 分布式软总线示意图

2) 分布式设备虚拟化

分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬 件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。分布式设备虚拟化 示意图见图3。

 

■ 图3 分布式设备虚拟化示意图

3) 分布式数据管理

分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。分布式数据管理示意图见图4。

■ 图4 分布式数据管理示意图

4) 分布式任务调度

分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。图5以应用迁移为例,简要地展示了分布式任务调度能力。

■ 图5 分布式任务调度示意图

2. 一次开发,多端部署

鸿蒙操作系统提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署示意图见图6。

■ 图6 一次开发、多端部署示意图

3. 统一操作系统,弹性部署

鸿蒙操作系统通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。

(1) 支持各组件的选择(组件可有可无)。根据硬件的形态和需求,可以选择所需的组件。

(2) 支持组件内功能集的配置(组件可大可小)。根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。

(3) 支持组件间依赖的关联(平台可大可小)。根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。

02、搭建鸿蒙操作系统环境

鸿蒙操作系统开发环境基于Java开发环境,为了便于开发,华为官网提供了集成工具DevEco Studio。DevEco Studio 的编译构建依赖 JDK,DevEco Studio 预置了Open JDK,版本为1.8,安装过程中会自动安装 JDK。为保证DevEco Studio正常运行,建议计算机配置满足如下要求: 操作系统为Windows 10 64 位、内存8GB 及以上、硬盘100GB及以上、分辨率1280×800px及以上。

分析

在开发过程中,UI界面开发可以选择使用JS UI框架,所以鸿蒙操作系统环境搭建包括DevEco Studio和Node.js的下载和安装。

1Node.js下载与安装

Node.js应用于开发 JavaScript应用和运行预览器功能,是开发鸿蒙操作系统应用过程中必备的软件。登录 Node.js 官方网站,下载 Node.js 软件包。选择 LTS 版本,Windows 64 位对应的软件包,见图7。

■ 图7 Node.js 官方网站

单击下载后的软件包进行安装,全部按照默认设置单击 Next按钮,直至 Finish。安装过程中,Node.js 会自动在系统的 path 环境变量中配置 node.exe 的目录路径。

2DevEco Studio下载与安装

(1) 登录鸿蒙操作系统应用开发门户,单击右上角“注册”按钮,注册开发者账号,注册指导参考注册华为账号。如果已有华为开发者账号,直接单击“登录”按钮。

说明

使用 DevEco Studio 远程模拟器需要华为账号进行实名认证,建议在注册华为账号后,立即提交实名认证审核,认证方式包括“个人实名认证”和“企业实名认证”,详情请参考实名认证。

(2) 进入 HUAWEI DevEco Studio 产品页,下载 DevEco Studio 安装包。

(3) 双击下载的“deveco-studio-xxxx.exe”,进入 DevEco Studio 安装向导,在安装选项界面勾选DevEco Studio launcher复选框后,单击Next按钮,直至安装完成,如图8所示。

 ■ 图8 DevEco Studio 安装向导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT很好,但别想着用来写留学申请文书!

大家必须承认一件事,大多数申请者和 ChatGPT 相比,ChatGPT 产出的文章质量更高—— ChatGPT语言更精准 ChatGPT文章结构更严谨 ChatGPT行文更流畅 …… 但是为什么仍然不建议大家利用人工智能来撰写申请文书呢? 文书至关重要——比大…

IntelliJ IDEA 配合 Maven 的一些技巧(profiles)

IntelliJ IDEA 配合 Maven 的一些技巧 环境 IntelliJ IDEA 2017.1 Maven 3.3.9 Nexus 3.2.1 ## 学习前提 了解 Maven 配置的基本用法 了解私有仓库,比如 nexus 的一些概念 强烈建议把 Maven 的 settings.xml 文件同时放在:%USER_HOME%/.m2/settin…

IDEA中DEBUG技巧

Debug 介绍 Debug 设置 如上图标注 1 所示,表示设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket 会快点。 ## Debug 常用快捷键 Win 快捷键M…

初高(重要的是高中)中数学知识点综合(持续更新)

1. 集合 1.1 集合的由来和确定性 确定对象构成的整体称为集合(组成集合的元素必须是确定的 ),每个集合内的对象个体成为元素(Element)。确定性: 给定一个集合,任何一个对象是不是这个集合内的元素,就已经确…

港联证券股票分析:经济拐点显现 积极提升仓位

港联证券指出,商场底部上升的方向不变,当时稳增加和活跃资本商场的活跃方针仍在持续落地,一起也看到了一些经济数据边沿企稳的迹象,跟着方针作用的进一步闪现,商场情绪有望持续好转,上市公司基本面也有望得…

vue+element使用阿里的图标库保存图标

阿里图标网站iconfont-阿里巴巴矢量图标库 我想使用保存图标,但是element的图标库没有找到可用的,首先在阿里的图标网站搜索保存 发现这个还不错 点击添加入库 点击购物车 点击添加至项目 点击下载到本地 把下载的压缩包里面的文件拖到自己项目里面 在m…

ICCV 2023 | SuS-X:仅靠类别名称微调CLIP模型,剑桥大学联合DeepMind出品

论文链接: https://arxiv.org/abs/2211.16198 代码仓库: https://github.com/vishaal27/SuS-X 对比语言图像预训练(Contrastive Language-Image Pre-training,CLIP) 已成为计算机视觉社区通向自然语言领域的一种常用的…

mp4视频太大怎么发送?这样压缩视频就对了

随着科技的发展,视频格式多种多样,其中mp4格式因为其通用性而广受欢迎。然而,有时候我们会遇到一个问题:mp4视频文件太大,导致发送变得困难。那么,如何解决这个问题呢?下面就给大家分享几个实用…

【易盾点选】

拿官网的点选做个例子吧,比较省事,水一篇~ ​ 官网的接口目前都改成V3了,多了个dt参数,以及加密的一个函数也变动了下 点选坐标在这,加密函数未变,用逗号拼接 整个加密里的函数变了,直接重新…

live555-lastest 编译

1. live555-latest 源码下载:http://www.live555.com/ 2. 将下载的live-latest.tar.gz放到指定目录下解压:tar -xvf live-latest.tar.gz,cd 进入live目录,在live目录下有很多config.xxxx的相关配置文件,config.linux默…

什么是Vercel?

Vercel 是一个云平台,用于构建、部署和扩展无服务器应用程序和静态网站。由于其易用性、速度和处理大量流量的能力,它在开发人员中越来越受欢迎。 使用 Vercel,您可以使用各种编程语言和框架构建和部署应用程序,并利用自动 SSL、…

使用vue3.0实现一些动画效果

一, 动画效果: 1,横屏滚动 2,根据横屏滚动的距离,左侧文本缩小放大 3,鼠标悬浮单张图片时根据悬浮位置发生倾斜效果 横屏滚动函数: function handlerMouserScroll(event) { //鼠标滑动list…

【校招VIP】产品思维考察之用户体验

考点介绍: 在设计产品的功能点时,我们需要设想我们的用户到底是谁?他的需求是什么? 为此我们需要做用户分析,从而得出我们的用户画像,提供解决方案。用户调研是用户分析的一种方法,用户画像是结…

ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O插装式比例流量阀放大器

比例减压阀 EPPD2_2A、EPRV1-16、EPRV2-8 比例流量阀 EFV1-10-C、EFV1-10-O、EFV1-12-C、EFV1-12-O、EFV2-12-C、EFV2-12-O、EPV16A、EPV16B、ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O、ESV1-12-C、ESV1-12-O 比例流量阀 双油口压力补偿阀 EPFR14A、EPFR24A 比例溢流阀…

SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App

概览 作为我们秃头开发者来说,写出一款创意炸裂的 App 还不足以吸引用户眼球,更重要的是如何让用户用最短的时间掌握我们 App 的使用技巧。 从 iOS 17 开始, 推出了全新的 TipKit 框架专注于此事。有了它,我们再也不用自己写 A…

Linux系统编程-C++ I/O库

文章目录 一、 总述二、输出缓冲三、文件输入输出四、string流五、输入输出格式总述1、控制布尔值的格式2、指定整型值的进制3、在输出中指出进制4、控制浮点数格式4.1、 指定打印精度5、输出空白 六、未格式化的输入输出操作 一、 总述 C使用标准库类来处理面向流的输入和输出…

Linux之shell条件测试

目录 作用 基本用法 格式: 案例 -f 用法 [ ] 用法 [[]] 用法 (()) 语法 文件测试 参数 案例 编写脚本,测试文件是否存在,不存在则创建 整数测试 作用 操作符 案例 系统用户个数小于50的则输出信息 逻辑操作符 符号 案例 …

Spring----IOC、注解

目录 一、简介 二、spring的组成及拓展 spring七大模块 核心容器(Spring core) Spring上下文(Spring context) Spring面向切面编程(Spring AOP) Spring DAO模块 Spring ORM模块 Spring Web模块 Spring MVC框架(Spring WebMVC) 拓展 三、IOC理论 IOC本质 Hello S…

11.(Python数模)(预测模型三)多元线性回归预测

多元线性回归 简介 多元线性回归使用在自变量和因变量有逻辑相关性的情况中。在实际应用中,多元线性回归经常用于探索和解释变量之间的复杂关系,例如经济学、社会科学和自然科学等领域。它提供了一种统计工具来分析多个自变量对因变量的影响&#xff0…

Windows下使用source insight连接远程Linux机器写代码

命令总结 基本会用到的命令都在这里了,流程里面就不加命令了,自行看表格 流程 linux安装 samba,并确认版本,确认samba服务运行状态配置samba用户配置samba的配置文件 在文件最后增加 示例如下: security user [pub…