前言
在数字化时代的浪潮中,鸿蒙系统(HarmonyOS)以其独特的分布式技术和开放的生态系统,正逐渐成为全球开发者关注的焦点。本文将带您深入了解和探索鸿蒙系统的各个方面。
后续笔者也会持续更新 鸿蒙应用开发教程 专栏,本专栏将从零基础开始,带领大家学习鸿蒙应用开发。
什么是鸿蒙系统
鸿蒙系统是由华为公司开发的一款面向全场景的分布式操作系统。它不仅支持智能手机,还广泛应用于平板、智能穿戴、智慧屏等多种设备。
鸿蒙系统的核心理念是“一次开发,多端部署”,旨在通过统一的开发框架和工具链,实现跨设备的无缝协同。
目前为止,我们所了解的鸿蒙系统,总共有三种,分别是:
OpenHarmony
HarmonyOS
HarmonyOS NEXT
1. OpenHarmony
OpenHarmony是鸿蒙系统的开源版本,是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
特点:
轻量级:采用了微内核设计,较小的系统体积和较快的运行速度。
分布式:支持分布式技术,设备之间无缝协作,提高系统性能和用户体验。
开源:遵循Apache 2.0协议,开源代码。
多模态:支持多种交互方式,包括语音、触摸、手势等,满足各场景需求。
技术架构:
OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。
OpenHarmony技术架构图
内核层
内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。
驱动子系统:驱动框架(HDF)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
系统服务层
系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力。
基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 等子系统组成。
增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务。
硬件服务子系统集:提供硬件服务,由位置服务、用户IAM、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
框架层
为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API。
应用层
应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。
2. HarmonyOS
HarmonyOS是华为公司推出的商业版本鸿蒙系统,它基于OpenHarmony开发,增加了针对消费电子领域的特性和优化。HarmonyOS主要应用于智能手机、平板电脑、智能穿戴设备等消费电子产品。
特点:
增加商业特性和功能,如华为移动服务(HMS)、华为应用市场等。
提供更加完整的解决方案,包括开发工具、API、框架等,以支持不同设备和应用的开发。
支持多种编程语言,如Java、JavaScript、C/C++等。
由来:
HarmonyOS最早在2019年8月发布,是华为对OpenHarmony进行商业化的成果。
参与企业:
-
华为:主导者,负责系统的研发、推广和商业化。
-
合作伙伴:包括硬件厂商、软件开发者和内容提供商等,共同构建HarmonyOS生态系统。
3. HarmonyOS NEXT
HarmonyOS从诞生就一直处于舆论风口浪尖上的系统,一直被"爱国者"们加上“套壳”安卓的说法。直到2023年秋季华为发布了不再兼容安卓的NEXT版本,至此,纯血鸿蒙操作系统诞生。
HarmonyOS NEXT是华为公司在HarmonyOS基础上推出的新一代操作系统,它进一步优化了性能和功能,主要面向未来智能硬件设备,如智能家居、智能汽车等。
特点:
更强大的分布式能力:在分布式技术方面进行了升级,支持更多类型的硬件设备,实现更广泛的场景覆盖。
全新架构:采用了全新的架构,不再兼容安卓,优化系统性能,提高了运行速度。
开发者友好:为开发者提供了更丰富的API和开发工具,降低了开发难度,提高了开发效率。
跨平台支持:支持多种硬件平台,包括ARM、x86、MIPS等,为开发者提供了更多选择。
总的来说,OpenHarmony是开源版本,适用于全场景;HarmonyOS是面向消费市场的商业版本;而HarmonyOS NEXT则是面向未来智能硬件设备的新一代操作系统。它们共同构成了鸿蒙系统的家族,助力华为在操作系统领域实现全面发展。
鸿蒙生态应用和开发优势
在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念:
1. 一次开发,多端部署。
2. 可分可合,自由流转。
3. 统一生态,原生智能。
理念1 : 一次开发,多端部署
“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。
目的 : 支撑开发者开发多种终端设备上的应用。
实现 : 多端开发环境,多端开发能力以及多端分发机制。
多端开发环境工具
HUAWEI DevEco Studio 是面向全场景多设备提供的一站式开发平台,支持多端双向预览、分布式调优、分布式调试、多设备模拟、低代码可视化开发等能力,帮助开发者降低成本、提升效率、提高质量。
多端开发能力
1. 多端 UI 适配
不同设备屏幕尺寸、分辨率等存在差异,鸿蒙系统将对屏幕进行逻辑抽象,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界面适配。
屏幕逻辑抽象:鸿蒙系统提供虚拟像素 vp(virtual pixel)对分辨率进行抽象,不同设备的系统在底层将物理像素转化成虚拟像素。
2. 交互事件归一
事件归一抽象:不同设备间的交互方式等存在差异,如触摸、缩放、键盘、鼠标、语音、手写笔等,鸿蒙系统将不同设备的输入映射成归一交互事件,从而简化开发者适配逻辑。
3. 设备能力抽象
应用开发者基于统一的方式访问不同设备的能力。
不同设备间的软、硬件能力等存在差异,鸿蒙系统需要对设备能力进行逻辑抽象,并提供接口来查询设备是否支持某一能力,方便开发者进行不同软、硬件能力的功能适配。
在鸿蒙系统中,使用SystemCapability(简写为 SysCap)定义每个部件对应用开发者提供的系统软硬件能力。
多端分发机制
1. 多设备按需分发
鸿蒙系统提供了两种模式帮助开发者基于“一次开发,多端部署”能力分发应用和元服务到不同设备上。
2. 多入口按需分发
鸿蒙系统为元服务提供了更多的分发入口,基于场景和用户意图拉起元服务,实现“服务直达”。
理念2 : 可分可合,自由流转
元服务是鸿蒙系统提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。
鸿蒙生态下,鸿蒙原生支持元服务开发,开发者无需维护。
元服务基于鸿蒙系统 API 开发,支持运行在 1+8+N 设备上,供用户在合适的场景、合适的设备上便捷使用。元服务是支撑可分可合,自由流转的轻量化程序实体,帮助开发者的服务更快触达用户。
特点:
触手可及:元服务可以在服务中心发现并使用,同时也可以基于合适场景被主动推荐给用户使用。
服务直达:元服务无需安装卸载,“秒开体验”,即点即用,即用即走。
万能卡片:支持用户无需打开元服务便可获取服务内重要信息的展示和动态变化,如天气、关键事务备忘、热点新闻列表。
自由流转:元服务支持运行在多设备上并按需跨端迁移,或者多个设备协同起来给用户提供良好的体验。例如手机上未完成的邮件,迁移到平板继续编辑,手机用作文档翻页和批注,配合智慧屏完成分布式办公。
理念3 : 统一生态,原生智能
统一生态具有愿景上的意义,打造智能联接,共建智能世界。
从设备角度来说,基于鸿蒙可以开发多种全场景终端设备。
从应用角度来说,可以为鸿蒙开发多种应用,运行在全场景设备上,满足智能家居、智慧办公等全场景使用要求。为此鸿蒙系统提供全套能力来保证。
AI智能 : 鸿蒙系统内置强大的 AI 能力,面向鸿蒙生态应用的开发,通过不同层次的 AI 能力开放,满足开发者的不同开发场景下的诉求,降低应用的开发门槛,帮助开发者快速实现应用智能化。
-
分层提供多样化的AI能力
☆ 场景化 AI 控件:包括朗读、文档扫描、卡证识别、活体检测、AI 字幕、智能荐图、智能 填充等。
☆ 基础 AI 控件:将 AI 能力与系统基础控件深度融合,使系统控件具有文字识别、图像分 割、实体识别等 AI 能力,降低开发成本。
☆ AI 基础能力:提供 TTS、ASR、OCR 等 AI 基础能力。
☆ AI 子系统:提供高性能低功耗的端侧推理和端侧学习环境,保证芯片能力高效有序提供。 还提供大模型的相关能力。
-
意图框架提供了 HarmonyOS 系统级的意图标准体系,通过多维系统感知、大模型等能力构建全局意图范式,实现对用户显性与潜在意图的理解,并及时、准确地将用户需求传递给生态伙伴,匹配合时宜的服务,为用户提供多模态、场景化进阶场景体验。
初识鸿蒙开发能力全场景
鸿蒙生态应用开发能力全景图
(1)赋能套件
赋能套件全景图
(2)鸿蒙开发套件
鸿蒙开发套件全景图
Harmony Design设计套件
Harmony Design 是面向全场景智能体验的设计系统。
全栈式设计规范:包括设计理念、人因研究、应用架构、人机交互、视觉风格、隐私设计、动效、音效、振动、多态控件、界面用语、全球化、无障碍等。
丰富的设计资源:HarmonyOS 字体、HarmonyOS Symbol 和 HarmonyOS 音效库。
开发套件
编码工具HUAWEI DevEco Studio集成性能调优、设备模拟、命令行工具和 SDK。
测试套件
提供鸿蒙生态应用开发、调试、单元测试、集成测试、上架测试等各开发阶段所需的测试工具集,支持手机、折叠屏、平板、智慧屏、手表、音箱等 1+8+N 设备,帮助开发者全面高效测试。
运维套件
主要包括由 HUAWEI AppGallery Connect 提供的上架分发测试和运维分析两大能力。
ArkUI 框架
ArkUI是一套构建分布式应用界面的声明式UI开发框架。
-
简洁的UI信息语法、丰富的UI组件、以及实时界面预览工具
-
应用界面开发效率提升30%
-
使用一套ArkTS API,在多个设备上体验
Ability
应用所具备能力的抽象,是应用程序的基本组成部分,主要包括组件生命周期回调、系统环境变化通知、应用跳转、万能卡片开发等能力。具备如下核心的技术特征:
基于 MVVM 模型
原生分布式
支持多设备
方舟编译器(ArkCompiler)
支持多种编程语言、多种芯片平台联合编译、运行而设计的统一编译运行时平台。支持包括动态类型和静态类型语言在内的多种编程语言,如 ArkTS、TS、JS。
方舟编译器主要分成两个部分 :
编译工具链 : 编译工具链以ArkTS/TS/JS 源码作为输入,将其编译生成为ABC(ArkCompiler Bytecode,即方舟字节码)文件。
运行时 : 运行时直接运行字节码文件,实现对应语言规范的语义逻辑。
特点:
原生支持类型:目前业界引擎执行 TS 的方式是先把 TS 转化为 JS,再运行 JS 源码来完成对应的语义逻辑
并发模型优化与并发 API
简洁的并发 API
安全
(3)三方库
鸿蒙生态三方库,是在鸿蒙系统上可重复使用的软件库,可帮助开发者重用技术资产,快速开发鸿蒙生态应用、元服务,提升开发效率。根据不同的开发语言分为两种:
-
ArkTS/TS/JS 语言的三方库,可直接导入并使用。
-
C/C++语言的三方库,在应用开发中通过 NAPI 的方式来使用
(4)鸿蒙生态伙伴 SDK 市场
-
帮助开发者获得更优质安全的闭源 SDK。
-
共建一站式的 SDK 选用平台,实现共赢。
-
鸿蒙生态伙伴 SDK市场汇聚高品质鸿蒙原生应用。
-
通过 SDK 签名认证、安全检测/审核、SDK 上架发布等机制保障 SDK 的安全、纯净、可控。
(5)开发者支持平台
为了能更好地连接、服务开发者,开发者支持平台向开发者提供了以下能力,帮助开发者快速成长并融入鸿蒙生态。
开发者社区:开发者技术交流平台,帮助开发者探索开发实践、交流心得经验、获悉业界动态、答疑解惑。
开发者学堂:聚合官方鸿蒙生态课程,课程有慕课、微课、直播课、训练营等多种形式,内容有入门、基础、进阶分级,面向开发者提供学、练、考、证一站式服务,满足开发者不同阶段的学习诉求。
开发者成长计划:设置校园开发者计划(HSD)、布道师计划(HDE)等开发者成长计划,助力不同类型开发者提升技能,帮助开发者相互连接、共享能力、彼此启发、协同激励。
开发者技术支持:针对开发者在开发实践中的具体问题提供问题反馈平台,其中智能客服提供 7*24 小时自助式智慧技术问答;工单系统由技术客服为开发者提供问题处理和在线技术支持。
鸿蒙开发语言介绍
(1)ArkTS 语言
鸿蒙系统在发布初期,支持多种开发语言,包括ArkTS、Java、C/C++和JavaScript等。其中,ArkTS 是鸿蒙生态应用首选的开发语言。
ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
特点:
自然简洁语法 : ArkTS提供了简洁自然的声明式语法、组件化机制、数据-UI自动关联等能力,实现了贴近自然语言,书写效率更高的编程方式,为开发者带来易学、易懂、简洁开发的优质体验。
轻量化并发机制 : ArkCompiler运行时在HarmonyOS上提供了Taskpool和Worker支持并发编程。在运行时实例内存隔离的基础上,ArkCompiler通过共享运行实例中的不可变或者不易变的对象、内建代码块、方法字节码等技术手段,优化了并发运行实例的启动性能和内存开销。
(2)ArkUI 框架
ArkUI 是鸿蒙生态原生的 UI 开发框架。
特点:
UI 更新机制升级: ArkUI 通过编译期生成特定函数的方式将UI组件更新和数据变更进行细粒度地绑定,实现UI更新Diff算法从COMPONENT和ELEMENT树形结构对比升级为单节点NODE的函数式更新,大幅简化了声明式开发范式UI组件的树形结构,大幅度优化了UI组件布局渲染性能。
逻辑和UI分离: 逻辑和UI分离通过利用数据双向绑定机制传递页面变化逻辑,将流转7个步骤简化为2个步骤。可将跨端迁移和协同的开发代码量降低40%以上。
Stage 模型: 面向开发者提供十几种不同场景的扩展服务Extension机制,在保证了应用后台进程合理运行的基础上,规避了应用进程之间无序拉起,达到保证前台资源供给,应用调度更加有序的目的。
高级UI组件扩展能力: ArkUI框架提供了基于XComponent组件的C++自绘制引擎接入(比如游戏引擎)能力,和基于Web组件的HTML5/Web的渲染能力。满足了开发者在游戏、相机、地图、浏览器等复杂应用场景的开发诉求,降低了这类应用移植的门槛。
(3)应用程序框架
应用程序框架定义了应用程序的模型与结构。鸿蒙系统上的应用模型称之为“Stage 模型”。应用程序框架定义了应用的全生命周期。
鸿蒙系统是一个支持1+8+N 多设备的统一操作系统,其生命周期的管理和定义就更为复杂且重要。
Stage 模型相关概念图片
特点:
规范化后台进程管理:为了保障用户体验,鸿蒙系统上的运行环境对后台进程进行了有序管理,当应用程序处于后台状态时,不应该处于高度活跃状态。为此,系统定义了四类后台任务。
短时任务:应用退到后台之后,系统提供了一个短期的可运行时间,应用可以进行数据保存的操作。超过这个时间,任务将被冻结。
长时任务:对于音乐播放,投屏,导航这类场景,系统提供了长时任务的能力。长时任务的类型是由系统定义的,应用应当根据实际需要来使用,不应当过度滥用。
延时任务:对于一些实时性要求不高的场景,系统提供了延时任务。这种情况下,会由系统统一周期,对齐多个应用的任务激活时间。
托管任务:这类任务是由系统完成,完成之后再通知到应用。例如,下载,提醒和定位这类场景。
原生支持分布式:鸿蒙系统的诞生很大程度上就是为了解决多设备时代的交互问题。鸿蒙系统的应用框架从设计之初就包含对于分布式的考虑。
支持多设备的统一窗口管理:过去,面向不同的设备诞生了不同的操作系统。例如,面向 PC 设备的操作系统,面向移动设备的操作系统,以及面向穿戴设备的操作系统等。由于这些系统诞生在不同的时代,面向不同的屏幕形态,因此其窗口系统存在很大的差异。为更好的管理这些差异性,鸿蒙系统设计了统一的窗口系统,给开发者提供统一的编程模型。
组件共享及面向对象:多个应用组件在运行时共享同一个虚拟机引擎,从而减少复杂应用运行内存的占用。采用面向对象的开发方式,使得复杂应用代码可读性高、易维护好、可扩展性强。
逻辑与界面解耦:窗口部分可单独销毁和重建,窗口与应用组件可跨设备运行,应用组件可在不启动界面的情况下响应请求。
灵活扩展机制:支持万能卡片、输入法、快捷开关、分享、壁纸、长时任务等应用开发。
(4)HarmonyOS SDK
HarmonyOS SDK 是为了支撑 Harmony OS 应用开发而提供的一系列开放能力,包括API 接口定义,资料文档,样例代码,基础工具包等。
HarmonyOS SDK 开放能力-示例图
鸿蒙开发的其它方面
分布式技术
鸿蒙系统的核心优势之一是其分布式技术。通过分布式软总线、分布式数据管理和分布式安全等技术,鸿蒙系统能够实现设备间的无缝连接和数据共享,为用户提供更加流畅和智能的体验。
生态系统
鸿蒙系统拥有一个不断壮大的生态系统,包括丰富的开发工具、文档和社区支持。开发者可以通过华为开发者联盟获取最新的开发资源和技术支持,与全球的开发者共同交流和学习。
安全性
安全性是鸿蒙系统的重要特性。鸿蒙系统通过多层次的安全机制,包括硬件安全、系统安全和应用安全,确保用户数据和隐私的安全。
结语
鸿蒙系统不仅是一个技术先进的操作系统,更是一个充满机遇的开发平台。
以上介绍只是鸿蒙应用开发当中的冰山一角,鸿蒙还提供了大量其它好用、高效的功能,在后面篇幅当中我还会详解介绍,并且带领大家从零入手来学会鸿蒙应用开发。
无论您是初学者还是经验丰富的开发者,鸿蒙系统都提供了丰富的资源和工具,帮助您实现创新和突破。加入鸿蒙开发的行列,开启您的智能设备开发之旅!
最后,通过本文的介绍,相信您对鸿蒙系统有了更深入的了解。如果您对鸿蒙开发感兴趣,不妨动手尝试,探索更多可能性。鸿蒙系统的未来,等待着您的参与和创造!
参考材料,HarmonyOS开发者官网 :
https://developer.huawei.com/consumer/cn/develop