HarmonyOS概述
本文关联视频课程链接:https://edu.csdn.net/course/detail/40476
1.1 什么是HarmonyOS
鸿蒙操作系统,即HarmonyOS,是由中国的华为公司研发的计算机操作系统。根据华为公司的官方定义,鸿蒙操作系统是为万物互联时代量身打造的全新分布式操作系统。它在传统的单设备系统功能上进行了扩展,提出了一个基于统一系统功能、适应多种设备形态的分布式理念。该系统能够兼容多种终端设备,如手机、平板、智能穿戴设备、智慧屏和车载系统等,并为这些设备提供全场景的业务功能,包括移动办公、运动健康、社交通信和媒体娱乐等。
可以视作鸿蒙操作系统英文名的HarmonyOS,可能有人会认为这种音译并不精确。华为终端公司的董事长余承东曾就鸿蒙操作系统的英文命名进行阐释,无论是GenesisOS还是HongmengOS,发音都显得有些复杂,因此为了统一和简便,选择了HarmonyOS作为名称。此外,Harmony这个英文单词本身蕴含和谐与协调之意,这与万物互联协作的核心理念相契合,故HarmonyOS这一名称相当贴切。
HarmonyOS,作为一款操作系统,当提及操作系统时,人们通常会想到微软的Windows,开源的Linux,以及苹果公司的macOS,还有DOS、OS/2、UNIX、XENIX、Netware等众多操作系统及其版本。从用户视角来看,操作系统负责管理计算机的硬件、软件和数据资源,旨在使计算机使用者能够更便捷、高效地操作和管理计算机。而从专业开发者的角度,操作系统涉及进程、处理器、存储、设备、文件和作业管理等,是计算机系统不可或缺的核心基础软件,这些内容通常在专业书籍中有详细阐述。
HarmonyOS,作为一款分布式操作系统,与单机式操作系统形成对比,其区别体现在资源管理、通信和系统架构等多个方面。HarmonyOS的分布式特性允许用户在多个相同或不同类型的设备间实现协同工作,逻辑上将这些设备融合为一个超级终端,为物联网(IoT)时代提供万物互联的体验。
HarmonyOS NEXT是HarmonyOS的原生版本,而HarmonyOS 5在NEXT的基础上进行了全面升级,实现了全场景体验的底层优化,使系统运行更加流畅,隐私安全功能更加强大,为用户带来更高效、更流畅、更便捷、更安全的智能操作体验。
与HarmonyOS 3.1/4.0相比,HarmonyOS 5为开发者提供了更丰富、完善的应用开发能力,更流畅、美观的界面效果,以及更智能、易用的开发工具。
HarmonyOS 5在开发能力方面有所增强,其开发能力将以Kit的形式展现,开发者可以根据Kit查找和使用不同的能力特性,使用场景化的开发接口,体验更清晰的编程逻辑,并支持通过import Kit的方式导入接口能力。ArkTS在保持TypeScript基本语法风格的同时,通过规范强化了静态检查和分析,使得程序开发期能检测更多错误,提升代码开发质量,实现更好的运行性能。
DevEco Studio作为HarmonyOS应用开发的配套工具,针对HarmonyOS 5进行了多项增强。DevEco Studio提供了即开即用的开发体验,将HarmonyOS SDK、Node.js、Hvigor、OHPM、模拟器平台等进行了整合打包,简化了安装配置流程。DevEco Studio还提供了历史工程迁移功能,帮助开发者快速完成工程向新版本的转换,并支持端云一体化工程的创建、开发、调试、部署、调用云对象等功能。
HarmonyOS的目标是覆盖“1+8+N”全场景终端设备,其中“1”指的是手机,“8”包括PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”则代表其他IoT生态产品。
HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发各种单机或分布式应用。
然而,HarmonyOS的历史并不长,下面简单列举了关于HarmonyOS发展过程中的一些大事件。
2012年,华为公司开始规划自己的操作系统,命名为“鸿蒙”。
2018年8月24日,华为公司向国家知识产权局申请了“华为鸿蒙”商标,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。
2019年8月9日,华为正式发布HarmonyOS,同时对外表示HarmonyOS开源。
2020年8月7日—8日,在中国信息化百人会2020年峰会上,华为公司宣布HarmonyOS已经应用到华为智慧屏和华为手表上,未来会应用到更多全场景终端设备上。
2020年9月10日,华为HarmonyOS升级至2.0版本,即HarmonyOS 2.0,并面向终端设备开源,开源的鸿蒙项目名为OpenHarmony。OpenHarmony正式捐献给开放原子开源基金会(OpenAtom Foundation)。从此以后,HarmonyOS由华为公司主导,OpenHarmony由开放原子基金会负责,面向广大运营商和开发者,同时发布OpenHarmony 1.0。
2020年12月16日,华为发布HarmonyOS 2.0手机开发者Beta版本。
2021年6月1日,OpenHarmony 2.0 Canary发布。
2021年6月2日,华为正式发布HarmonyOS 2及多款搭载HarmonyOS 2的新产品。
2021年9月30日,OpenHarmony v3.0 LTS发布。
2022年5月31日,OpenHarmony v3.1.1 Releases发布。
2022年7月27日,华为正式发布HarmonyOS 3。
2023年8月4日,华为发布HarmonyOS 4,为用户提供更好的体验。
2024年6月21日,华为发布HarmonyOS NEXT Developer Beta1版本,面向广大开发者开放鸿蒙原生应用开发。
2024年10月8日,HarmonyOS NEXT版本面向大众开启公测。
2024年10月22日,华为正式发布HarmonyOS 5,该版本继承自HarmonyOS NEXT,标志着HarmonyOS NEXT经过概念阶段、开发者体验阶段、消费者体验阶段的打磨后,正式面向消费者发布。
1.2 HarmonyOS的技术理念
作为一个操作系统,HarmonyOS具有一般操作系统的特征,对于操作系统的一般特征这里不再阐述。HarmonyOS作为一款面向万物互联时代的分布式操作系统,结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。
1.2.1 一次开发、多端部署
“一次开发,多端部署”指的是一个应用只需要开发上架,就可以实现在不同的设备上多端按需部署。为了实现这一目的,鸿蒙系统提供了多个核心能力,包括多端开发环境,多端开发能力和多端分发机制。HarmonyOS提供的Ability框架、UI框架等,使得开发者可以将业务逻辑和界面逻辑在不同终端设备进行复用,以实现一次开发、多端部署,同时也降低了跨设备应用开发的工作量。
1.2.2 可分可合、自由流转
从操作系统本身而言,HarmonyOS设计上采用了组件化的基本思想,系统可大可小,模块可分可合,支持多种终端设备,可以按需弹性部署。从应用层面上来说,应用组件可以自由分合,自由流转,实现跨端连续服务、多端协同。
在开发态,开发者通过业务解耦,可以把不同的业务拆分为多个模块。在部署态,开发者可以将多个模块自由组合,打包成一个App包上架。在分发运行态,每个HAP都可以单独分发满足用户单一使用场景,也可以多个HAP组合分发满足用户复杂的使用场景。
传统应用一般只能在单个设备上运行,当用户有多个设备使用应用,则需要在多个设备间来回切换。鸿蒙系统提供了自由流转的能力,使得开发者可以方便地开发出跨越多个设备的应用,为用户提供多设备自由流转协同使用应用体验。
1.2.3 统一生态、原生智能
HarmonyOS可以根据硬件的形态和需求,选择所需的组件,支持组件内功能集的配置,支持组件间根据编译链关系,自动生成组件化的依赖关系。统一生态使得装有HarmonyOS的物联网设备采用统一接入标准,实现快速接入。HarmonyOS与OpenHarmony生态也完全统一,与三方框架共同发展繁荣。
移动操作系统和桌面操作系统的跨平台应用开发框架不尽相同,鸿蒙系统提供系统WebView、ArkUI框架和XComponent能力,支撑不同类型的跨平台框架接入主流跨平台开发框架,使得应用可以低成本迁移到鸿蒙系统。
HarmonyOS原生智能提供分层且简单易用的AI能力,面向鸿蒙生态应用的开发,通过不同层次的AI能力,满足开发者的不同开发场景下的需求,降低应用的开发门槛,帮助开发者快速开发原生智能应用。
另外,早期在没有接入AI智能之前,HarmonyOS操作系统的主要特点一般概述为硬件互助、资源共享,一次开发、多端部署,统一OS、弹性部署。
1.3 HarmonyOS体系架构
和很多操作系统类似,HarmonyOS整体上采用的是分层的体系架构,如图所示,体系结构分四层,从下向上依次是:内核层、系统服务层、框架层和应用层。系统功能结构上,从大到小是按照系统、子系统、功能/模块分级展开的。在多设备部署场景下,可以根据实际需求,按照子系统或功能/模块进行裁剪,实现系统弹性适应。
HarmonyOS层次体系架构
1.3.1 内核层
内核层是和硬件直接打交道的一层,HarmonyOS采用了多内核设计,支持针对不同资源受限设备,可以选用适合的操作系统内核。在内核子系统之上,系统设计了内核抽象层(Kernel Abstract Layer,KAL),通过屏蔽多内核差异,为上层提供统一的基础的内核能力,包括进程/线程管理、内存管理、文件系统管理、网络管理和外设管理等。
另外,内核层中还包括驱动子系统,用于驱动不同的硬件,其中的硬件驱动框架(Hardware Driver Framework,HDF)更是为HarmonyOS硬件扩展提供了基础,为开发者提供了统一外设访问、驱动开发和管理框架。
1.3.2 系统服务层
系统服务层是HarmonyOS的核心能力集合。该层包含四个子系统集,分别是系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。
系统基本能力子系统集为分布式应用在HarmonyOS的多设备上的运行、调度、迁移等操作提供了基础能力,它由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。
基础软件服务子系统集为HarmonyOS提供公共的、通用的软件服务,包括事件通知、电话、多媒体、DFX(Design For X)、MSDP&DV等子系统。
增强软件服务子系统集为HarmonyOS提供针对不同设备的、差异化的增强型软件服务,主要包括智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统。
硬件服务子系统集为HarmonyOS提供硬件服务,包括位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统。
另外,根据不同设备形态部署环境,子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
1.3.3 框架层
框架层为鸿蒙应用开发提供基础,其向下和系统服务层对接,向上为应用层提供服务,HarmonyOS框架层包括用户程序框架、Ability框架、UI框架等。用户程序框架和Ability框架支持Java/C/C++/JS/TS/ArkTS等多种开发语言,使得开发者可以选择。UI框架主要支持ArkUI。鸿蒙框架层提供了多种软硬件服务对外开放的多语言框架API,根据系统的组件化裁剪程度,HarmonyOS设备支持的API也会有所不同。
1.3.4 应用层
应用层是应用程序所对应的层,可以简单理解为常用的APP所在的层次,它们是用户使用系统的接口。HarmonyOS应用开发指的就是开发应用层的APP,鸿蒙应用开发框架提供了一系列 的开发接口,为开发者开发应用提供支持。
HarmonyOS提供的应用形态主要包括两种,一种是通常所说的应用(Application),另一种是元服务(Atomic Service),前者安装到系统后以图标方式放置在桌面上,后者多以卡片的形式为用户提供服务功能。
在应用开发模型上,当前HarmonyOS开发提供了两种模型,一个FA(Feature Ability)模型,一个是Stage模型。
从API 9开始,Ability框架引入了Stage模型,Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。
从HarmonyOS NEXT Developer Preview1(API 11)版本开始,HarmonyOS SDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域。
目前,Stage开发模型是HarmonyOS推广的主要开发模型,本书也主要以Stage模型为主进行应用开发介绍。
1.4 支持开发语言
进行HarmonyOS相关的开发可以选择的语言很多,如C/C++、Java、XML(Extensible Markup Language)、JS(JavaScript)、TS(TypeScript)、ArkTS(Ark TypeScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)等等。
随着HarmonyOS 5的正式发布,ArkTS成为HarmonyOS主要的应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。
另外,仓颉程序设计语言也会逐渐支持HarmonyOS开发,仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能,强安全。目前正在不断融入鸿蒙生态,为开发者提供新的语言选择和编程体验。
1.5 常见操作系统介绍
为了更好地认识HarmonyOS,我们这里从使用者的视角介绍一下常用的操作系统。常用的操作系统有Windows、Unix、Linux、macOS、iOS、Android、HarmonyOS等。
1.Windows
Windows是由美国微软公司成功开发的一个多任务操作系统。其最大特点是采用了图形窗口界面,用户对计算机的各种复杂操作几乎都可以通过窗口完成,这也正是Windows的原本含义。
Windows经过长期发展,有一系列的版本,如Windows 3.0、Windows 98、Windows 2000、Windows XP、Windows 7、Windows 8、Windows 10、Windows 11等,现在我们的日常用个人电脑(Personal Computer,PC)多数配置了Windows 10/11操作系统。
2.UNIX
UNIX最早由肯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)于1969年在美国AT&T的贝尔实验室开发的,它是一个多用户、多任务操作系统,支持多种处理器架构。
长期以来,由于UNIX是由一些大型的公司在维护,因此UNIX通常与这些公司所生产的硬件配套使用。也正是由于这个原因,在很大程度上限制了UNIX在普通用户群中的广泛传播和使用,但是其强大的功能和高效的服务能力使其在很多专业的服务器得到了广泛使用。
3.Linux
Linux是基于UNIX的一个操作系统,Linux系统内核最初是由芬兰赫尔辛基大学的林纳斯·托瓦兹(Linus Torvalds)在学生时代开发的。1991年Linux正式推出,开始得到广泛关注。它是一个多用户、多任务的开源操作系统,与UNIX完全兼容,开源策略使得Linux获得了长足发展和广泛使用。目前,Linux操作系统在服务器上已成为主流的操作系统。
基于Linux发展出了很多发行版本,如FedoraCore、CentOS、Debian、Ubuntu、Gentoo、FreeBSD、openSUSE等等。
4.macOS
macOS是由美国苹果公司推出的专门运行在苹果电脑上的操作系统,也是在商用领域首个在图形用户界面获得成功的操作系统。从1984年诞生,历经几十年发展,演变出了一系列版本,并且还在不断升级中。
5.iOS
iOS是由苹果公司开发的移动操作系统。该操作系统最早于2007年1月9日的Macworld大会上公布,其最初只是设计给iPhone使用的,后来逐渐发展到了iPad等设备上。iOS与苹果的macOS操作系统一样,都属于类UNIX的商业操作系统。
iOS早期系统名为iPhone OS,因为iPad、iPhone、iPod touch都使用了iPhone OS,乔布斯在WWDC2010上宣布将iPhone OS系统重新定名为“iOS”。iOS发展过程中,也涌现出了一系列的经典版本,如iOS 4、iOS 5等,目前手机已经更新到了iPhone16。
6.Android
Android操作系统是由美国谷歌(Google)公司开发的基于Linux内核的开源操作系统。Android主要使用于移动设备,如智能手机和平板电脑等。Android中文名字是安卓,Android一词的本义指的是机器人。
实际上,Android操作系统最初由安迪·鲁宾(Andy Rubin)开发,2005年8月被谷歌注资收购。2007年11月,谷歌与84家硬件制造商、软件开发商及电信运营商组建开放手机联盟共同研发改良Android系统,随后以开源方式发布了Android系统。2008年10月,第一部Android智能手机发布,随后逐渐扩展到平板电脑及其他领域,如电视、数码相机、游戏机、智能手表等。2013年全世界采用Android系统的设备数量已经达到10亿台,2024年2月15日,Android 15的首个开发者预览版发布。
谷歌采用了甜点作为Android系统版本的代号的命名方法。从Android 1.5版本开始,作为每个版本代表的甜点的尺寸越变越大,后来开始按照26个字母顺序命名,如:果冻豆(Jelly Bean,Android4.1和Android 4.2),奇巧(KitKat,Android 4.4),棒棒糖(Lollipop,Android 5.0),棉花糖(Marshmallow,Android 6.0),牛轧糖(Nougat,Android 7.0),奥利奥(Oreo,Android 8.0),派(Pie,Android 9.0)等。从Android 10开始,Android不再按照美味零食或甜点的字母顺序命名,而是转换为版本号。并先后出现了Android 11到Android 15。
7.HarmonyOS
HarmonyOS即鸿蒙操作系统,是一款可以运行于智慧屏、手机、平板、电脑、智能汽车、可穿戴设备等多终端设备的全场景操作系统,它能够协调各种软硬件资源,为我们带来全场景的分布式应用体验。
HarmonyOS操作系统目前还是一个相对新生的操作系统,系统还在不断完善升级中,但是作为国产的操作系统,其发展潜力是巨大的。
本文地址:https://www.vps345.com/10682.html