<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
什么是HarmonyOS
HarmonyOS 中文名字是 鸿蒙操作系统
中国神话传说盘古在昆仑山开天辟地之前,世界是一团混沌状的元气,这种自然的元气叫做鸿蒙,那个时代成为鸿蒙时代华为公司的操作系统以鸿蒙取名,是不是有开天辟地之寓意?
官方解释:HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。鸿蒙操作系统在传统的单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。使得用户在使用时可以在多个终端硬件之间进行很好的切换
HarmonyOS的目标是覆盖“1+8+N”全场景终端设备,这里“1”代表的是手机,“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”代表其它物联网(Internet of Things,IoT)生态产品。对应用开发者而言,HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。对设备开发者而言,HarmonyOS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
历史
2012年,华为公司开始规划自己操作系统,命名为“鸿蒙”。
2018年8月24日,华为公司向国家知识产权商标局申请了“华为鸿蒙”商标,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。
2019年8月9日,华为正式发布鸿蒙系统,同时表示,鸿蒙操作系统开源。2020年8月7日-8日,在中国信息化百人会2020年峰会上,华为公司表示,鸿蒙操作系统已经应用到华为智慧屏和华为手表上,未来会应用到全场景终端设备上。
2020年9月10日,华为鸿蒙系统升级至2.0版本,即HarmonyOS 2.0,并面向终端设备开源。2020年12月16日,华为鸿蒙OS正式发布了面向手机开发者的Beta版本,即HarmonyOS 2.0。
2021年6月2日晚,华为正式发布HarmonyOS 2。
2022年7月27日,华为发布 HarmonyOS 3 系统。
2023年8月4日正式发布HarmonyOS 4.0
2024年6月21日鸿蒙开发者大会展示鸿蒙生态、HarmonyOS NEXT 鸿蒙星河版设计理念
HarmonyOS的特性
三个显著技术特性:
硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署

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

分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端

分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理

分布式任务调度构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作。

HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发。
HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署。
支持各组件的选择(组件可有可无)
支持组件内功能集的配置(组件可大可小)
支持组件间依赖的关联(平台可大可小)
HarmonyOS体系架构
HarmonyOS系统整体上采用的的是分层的体系架构。
从下向上依次为:内核层、系统服务层、框架层和应用层

支持的开发语言
进行HarmonyOS相关的开发可以选择的语言很多
如:C/C++、Java、XML、JS(JavaScript)、TS(TypeScript)、ArkTS、CSS和HML(HarmonyOS Markup Language)等等。
在应用开发层面,目前主要支持的是两大语言:
一个是JavaScript,简称JS;
一个是改进的TypeScript,也称eTS或ArkTS。
当然也可进行基于C/C++、Java、Python等语言的开发。
常见操作系统介绍
操作系统(Operating System,简称OS),是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件。
介绍几个操作系统:Windows系列、Unix、Linux、Mac OS、iOS、Android、HarmonyOS。
Windows:是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现,这样可能是Windows得以广泛使用的原因之一。
搭建开发环境
DevEco Studio 介绍
DevEco Studio集成开发环境是基于IntelliJ IDEA Community开源版本开发的,面向全场景多设备,提供一站式的分布式应用开发平台。
开发者可以通过该IDE进行项目创建、开发、编译、调试、发布等。DevEco Studio使得开发者可以方便地开发各种HarmonyOS应用,提升开发效率。

除了具有基本的代码开发、编译构建及调测等功能外,还具有以下特点,
1)多设备统一开发环境
2)高效智能代码编辑
3)多端双向实时预览
4)多端设备模拟仿真
5)低代码可视化开发
下载安装DevEco Studio
准备工作:
注册华为开发者联盟帐号,并实名认证(因为下载使用DevEco Studio及远程模拟器需要华为开发者联盟帐号)
注册网站:https://developer.harmonyos.com
下载:
链接:https://developer.harmonyos.com/cn/develop/deveco-studio
安装:
下载完成Windows(64-bit)版本后,解压,然后双击运行deveco-studio-xxxxx.exe, 按照安装向导安装。
开发运行第一个鸿蒙应用
开发并上架一个HarmonyOS应用到华为应用市场的4个步骤:
1)开发准备:开发准备包括注册和认证华为开发者账号,下载和安装DevEco Studio,下载HarmonyOS SDK。具体操作可以参考配置开发环境。
2)开发应用:DevEco Studio集成了Phone、Tablet、Wearable等多种设备的应用模板,可以通过向导创建工程,并实现自己的应用。开发过程中可以通过预览器等进行预览等工作,DevEco Studio提供了丰富的编码开发支持。
3)运行、调试和测试应用:应用开发过程中或完成后,可以使用真机进行调试或模拟器进行调试,DevEco Studio支持单步调试、跨设备调试、跨语言调试、变量可视化等调试手段,使得应用/服务调试更加高效。
4)签名发布应用:HarmonyOS应用开发完成后,如果需要分发,需要将应用发布至华为应用市场。发布到华为应用市场的应用,必须使用发布证书进行签名。
第1、4步骤需要做的工作的比较固定,基本都是一次性工作,第2、3步骤的工作往往是大量的,一个应用从开始开发到最终上线中间一般需要进行大量的分析、设计、编码、测试等工作,有的还会进行反复迭代。
第一次运行项目基本过程:
鸿蒙虚拟机管理
选择菜单Tools->Device Manager
登录华为开发者账号
允许DevEco Studio访问账号
启动模拟器
选择P50打开手机模拟器
运行项目
选择Run->Run entry
链接设备HUAEWEI模拟器
点击 OK 运行
项目启动过程
基于Stage模型的HarmonyOS应用项目中,每一个应用都有一个module.json5配置文件
首先会解析配置文件,获得配置文件中的module配置信息,找到要启动的应用对象。
根据配置文件中模块(module)配置的能力(abilities)信息获得配置的能力(ability),找到主能力。
能力的skills属性actions值设置为action.system.home的称为主能力,首先启动的能力。
接下来,系统会进入到主能力的生命周期过程。加载页面(page)
应用项目结构
APP Pack = Application Package,简称APP Pack,鸿蒙应用发布应用包
APP由一个或多个HAP(HarmonyOS Ability Package)以及描述APP属性的pack.info文件组成
一个HAP在工程目录中对应一个模块(Module),模块又由代码、资源、第三方库及应用清单文件等组成。
一个模块下面可以包含多个能力(Ability),其中有一个能力为主能力,也称为入口能力或Ability。主能力是应用启动首先加载的能力。

项目结构
FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型
其中FA支持Page Ability,PA支持Service Ability、Data Ability,以及FormAbility。API 8及其更早版本的应用程序只能使用FA模型进行开发。
Stage模型将Ability分为PageAbility和ExtensionAbility两大类
其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列ExtensionAbility,以便满足更多的使用场景。Stage模型从API 9开始支持。
项目结构–目录结构
AppScope:应用的资源和配置信息,其中包括应用的全局资源和应用的配置文件(app.json5)。
entry:默认启动模块,即主模块,开发者用于存放编写的源码文件以及开发资源文件的目录。

build:构建目录,用于存放编译构建生成的文件,有开发环境自动生成,一般开发者无需修改。
entry→src:源代码目录,用于存放编写的程序源代码,也包括配置文件代码等。
entry→src→main→ets:用于存放eTS源代码文件的目录。

entry→src→main→resources:用于存放应用所用到的资源文件目录,其下面又分为元素(element)资源和媒体(media)资源,元素资源如颜色、字符串、形状等,媒体资源如图片、音频等。
entry→src→main→module.json5:模块的配置文件,如模块中的Ability配置等。
entry→src→ohosTest:存放单元测试代码的目录。
entry→build-profile.json5:编译配置文件。
node_modulers:该文件夹中存放的是node.js包管理工具安装的包。
local.properties:该文件保存了sdk等对应的本地路径。

资源和配置
base下包括element、media等子目录,子目录也可以自行建立,不同的子目录用于存放不同类型的资源。
在element目录下一般用于存放字符串、颜色、整数、浮点数、复数、布尔值、数组等。
element资源的目录下,可以通过右键快捷菜单创建需要的元素资源文件


元素资源文件是JSON格式,如bool.json的内容如下:
讯享网
这里是一个JSON对象,其中存在一个属性为资源的根元素,这里是boolean,其值为一个JSON数组,数组中可以有多个JSON对象,每一个对象有一个name和value属性,分别表示资源的名字和值。
引用基础资源的形式:
\(r(‘app.type.name’)</p> <p>app代表是应用内resources目录中定义的资源</p> <p>type代表资源类型(或资源的存放位置),可以取color、float、string、plural、media等</p> <p>name代表资源名称</p> <p>引用rawfile下的资源的形式:</p> <p>\)rawfile(‘filename’)
filename为rawfile目录下的文件相对路径,且文件名需要包含后缀,路径开头不加“/”。
配置文件
1.配置文件的组成
在一个应用中主要有三个配置文件
应用配置文件app.json5
模块配置文件module.json5
模块的页面配置文件,可以自行命名的,并可在模块配置文件配置
配置文件均为JSON格式文本文件,其中包含了一系列配置项,每个配置项由属性和值两部分构成。
属性:代表的是配置项的名称,属性出现顺序不分先后,且每个属性最多只允许出现一次。
值:属性的值表示配置的含义,值为JSON的基本数据类型,包括数值、字符串、布尔值、数组、对象和null类型等。
2.配置说明
1)应用配置文件app.json5中的配置是面向整个应用的配置信息
2.配置说明
2)模块配置文件module.json5中的配置是面向模块的配置信息
Ability的主要配置说明
除了前面所述的配置外,项目中还有一些其它的配置文件,如:
编译配置(build-profile)
包配置(package)
本地属性配置(local.properties)等
|
| visible | Ability可见性,表示是否可以被其他应用调用,值为true或false。true:可以被其他应用调用;false:不能被其他应用调用 |
| skills | Ability能够接收的特征说明信息,用于启动该能力。值类型为对象数组,可以缺省 |
3)pages配置页面是为了给模块配置若干个页面对应源码位置,在模块的配置中,通过配置“pages”为模块配置页面对应的配置文件
“pages”: “$profile:main_pages”,
除了前面所述的配置外,项目中还有一些其它的配置文件,如:
编译配置(build-profile)
包配置(package)
本地属性配置(local.properties)等
只不过这些配置一般有开发环境自动配置,开发者一般无须过多关心。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/144803.html