目录
一、HarmonyOS 与应用程序框架初相识
在科技飞速发展的当下,万物互联的时代浪潮正汹涌澎湃地袭来 。智能设备如雨后春笋般不断涌现,从我们日常不离手的智能手机、平板电脑,到家中的智能电视、智能音箱,再到可穿戴的智能手表、手环等,它们正全方位地融入我们的生活。然而,在这繁荣发展的背后,传统操作系统却暴露出诸多弊端。不同设备之间的操作系统相互独立,缺乏有效的协同能力,使得用户在多设备交互时体验不佳,仿佛置身于一个个信息孤岛之中。而且,应用开发需要针对不同设备的操作系统进行适配,极大地增加了开发成本和难度。
正是在这样的背景下,HarmonyOS 应运而生,它承载着华为的厚望,肩负着打破传统操作系统困境的使命。HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统,它创新性地采用了分布式架构,宛如一条无形的纽带,能够将各类智能设备紧密连接在一起,实现无缝的协同与交互。无论是在家庭场景中,通过手机轻松控制智能电视播放喜欢的节目;还是在办公场景下,利用平板与电脑协同工作,提高办公效率;亦或是在出行时,让智能手表与车载系统互联互通,为用户提供便捷的导航和信息服务,HarmonyOS 都能游刃有余地应对,为用户打造出高效、便捷、智能的全场景生活体验。
而应用程序框架,作为 HarmonyOS 的核心组成部分,就如同大厦的基石一般,起着至关重要的作用。它为开发者提供了一系列丰富而强大的工具和接口,让开发者能够更加轻松、高效地开发出适配 HarmonyOS 的应用程序。这些应用程序不仅能够充分发挥 HarmonyOS 的分布式特性,实现多设备间的协同工作,还能为用户带来更加丰富、优质的功能和体验。可以说,没有应用程序框架的有力支持,HarmonyOS 的强大功能就难以得到充分的展现,它是连接开发者与 HarmonyOS 的桥梁,是推动 HarmonyOS 生态繁荣发展的关键力量 。
二、Harmony 应用程序框架的架构剖析
(一)整体分层结构
Harmony 应用程序框架采用了清晰且严谨的分层架构设计,这种设计理念犹如搭建一座稳固的高楼,每一层都承担着独特而关键的职责,从底层到上层层层递进,共同为应用的高效运行和丰富功能提供坚实支撑。
最底层是内核层,它堪称整个系统的根基,如同大厦的基石一般重要。内核层主要由内核子系统和驱动子系统组成。HarmonyOS 采用了先进的多内核设计,这种设计极具灵活性,能够根据不同设备的资源受限情况,精准地选用最为合适的 OS 内核。例如,对于资源相对匮乏的低功耗设备,可能会选用 LiteOS 内核,以确保系统在有限资源下的高效稳定运行;而对于资源较为充裕的设备,则可选择更强大的内核来充分发挥硬件性能。内核抽象层(KAL)宛如一个智能的协调者,它巧妙地屏蔽了不同内核之间的差异,向上层提供了一系列基础且关键的内核能力,包括进程 / 线程管理、内存管理、文件系统、网络管理和外设管理等。这些能力是系统正常运转的基础保障,就像人体的神经系统、循环系统等基础生理系统,维持着整个系统的基本生命活动。驱动子系统中的硬件驱动框架(HDF)则是 HarmonyOS 硬件生态开放的重要基础,它为各种外设提供了统一的访问能力,同时也为驱动的开发和管理搭建了一个高效的框架,使得硬件设备能够与系统进行顺畅的交互。
系统服务层处于内核层之上,它是 HarmonyOS 的核心能力汇聚之处,宛如人体的重要器官,集合了多种关键功能。这一层包含多个重要部分,其中系统基本能力子系统集尤为关键,它为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了不可或缺的基础能力。它由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等多个子系统协同构成。方舟运行时提供了 C/C++/JS 多语言运行时和基础的系统类库,为使用方舟编译器静态化的 Java 程序(即应用程序或框架层中使用 Java 语言开发的部分)提供了稳定的运行时环境,使得开发者可以根据项目需求灵活选择编程语言,大大提高了开发的灵活性和效率。基础软件服务子系统集为 HarmonyOS 提供了公共的、通用的软件服务,涵盖事件通知、电话、多媒体、DFX(Design For X)、MSDP&DV 等子系统,这些服务如同日常生活中的公共设施,为整个系统的正常运行和用户的便捷使用提供了全方位的支持。增强软件服务子系统集则针对不同设备的特点,提供了差异化的能力增强型软件服务,比如智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统,满足了不同设备在特定场景下的特殊需求,使得设备能够更好地发挥其独特功能。硬件服务子系统集为 HarmonyOS 提供硬件服务,包括位置服务、生物特征识别、穿戴专有硬件服务、IoT 专有硬件服务等子系统,它是连接系统与硬件设备的重要桥梁,确保硬件设备能够在系统的统一管理下高效运行。
框架层作为连接系统服务层与应用层的关键纽带,为 HarmonyOS 的应用程序开发提供了丰富而强大的支持。它为开发者提供了 Java/C/C++/JS 等多语言的用户程序框架和 Ability 框架,以及各种软硬件服务对外开放的多语言框架 API。不同设备支持的 API 与系统的组件化裁剪程度相关,这意味着开发者可以根据不同设备的特性和需求,灵活地选择和使用合适的 API,从而开发出更加适配各种设备的应用程序。对于屏幕较大、性能较强的平板电脑,开发者可以利用其丰富的 API 实现更加复杂和精美的界面设计;而对于资源相对有限的智能手表,开发者则可以选择精简后的 API,以确保应用在手表上能够流畅运行。
最上层的应用层是用户直接接触和交互的部分,它包括系统应用和第三方非系统应用。HarmonyOS 的应用由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成。FA 拥有直观的 UI 界面,就像一扇展示应用功能的窗户,为用户提供了便捷的交互能力,使用户能够轻松地与应用进行互动,完成各种操作;而 PA 则如同幕后的工作者,虽然没有 UI 界面,但它承担着提供后台运行任务的能力以及统一的数据访问抽象的重要职责,确保应用在后台能够稳定、高效地运行,同时为数据的管理和访问提供了统一的标准和方式。基于 FA/PA 开发的应用,能够充分发挥 HarmonyOS 的分布式特性,实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。在视频通话应用中,FA 可以作为视频通话的主界面,展示通话画面、提供操作按钮等,让用户能够直观地进行通话操作;而 PA 则可以负责摄像头视频采集、视频美颜处理、超级夜景处理等后台任务,保障视频通话的质量和效果。并且,这些 FA、PA 可以根据设备的实际需求和功能进行灵活的下载、加载和运行,比如在智慧屏上,如果不支持视频美颜处理、超级夜景处理功能,那么在下载该应用时,就只会下载 FA 主界面和负责摄像头视频采集的 PA,避免了资源的浪费,提高了应用在不同设备上的运行效率和适配性。
(二)分布式架构特性
Harmony 应用程序框架的分布式架构特性是其区别于传统操作系统的核心优势之一,它为智能设备之间的协同工作打开了全新的局面,实现了硬件互助、资源共享以及跨设备的无缝协同,让用户仿佛置身于一个高度融合的智能生态系统中,享受到前所未有的便捷体验。
分布式软总线是实现这一创新架构的关键基石,它宛如一条无形却强大的纽带,将手机、平板、智能穿戴、智慧屏、车机等各种分布式设备紧密地连接在一起。它为设备之间的互联互通提供了统一的分布式通信能力,就像为各个设备搭建了一条高速信息通道,使得设备之间能够快速地发现彼此,并实现零等待的数据传输。在这个过程中,开发者无需花费大量精力去