1 简介
本文档基于 OpenHarmony 2.2 Beta2
源码的 L2
设备部分编写因鸿蒙系统目前处在快速发展时期,本文中的一些内容可能会过时,建议在阅读的同时参考最新代码以了解更实时的知识。
Ability 子系统实现了对 Ability 的运行及生命周期进行统一的调度和管理,应用进程能够支撑多个 Ability,Ability 具有跨应用进程间和同一进程内调用的能力。Ability 管理服务统一调度和管理应用中各 Ability,并对Ability的生命周期变更进行管理。
该子系统在 OpenHarmony 架构中的位置见下图中红框 (这里有意增加了红框的尺寸,因为其内部逻辑除了 Ability 框架外,还包含了部分用户程序框架与系统服务层的内容)。对于应用进程来说,Ability 子系统是与之关系最紧密的核心系统模块。
1.1 OpenHarmony 架构图
2 基础知识
Ability 子系统的架构如下图所示。可以看到其分两个模块,其中 Ability Kit 模块位于 User Process (用户进程),而 AbilityManagerService
模块位于 Service Layer (服务层)。这两个模块内部由多个相关联的子模块组成。
Ability 子系统架构图
要理解 Ability 框架,需要先了解以下概念:
2.1 Ability
Ability 是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个 Ability。
Ability 分为 FA (Feature Ability) 和 PA (Particle Ability) 两种类,其中 FA 支持 Page Ability,PA 支持 Service Ability 和 Data Ability。
2.2 Ability 生命周期
Ability 生命周期 (Ability Life Cycle) 是 Ability 被调度到 INACTIVE \ ACTIVE \ BACKGROUND 等各个状态的统称 (主要涉及 PageAbility
类型和 ServiceAbility
类型的 Ability)。
- PageAbility 类型的 Ability 生命周期流转如下图所示:
- ServiceAbility 类型的 Ability 生命周期流转如下图所示:
如果希望了解更详细的关于 Ability 的知识,可以搜索参阅关于鸿蒙 Ability 的其他文档。我们之后也会编写一些详解 Ability 的文档并分享。
2.3 服务层
服务层 (Service Layer) 的各模块运行在 OpenHarmony 的各系统进程中,用于与底层交互并支撑上层框架层的功能,其通过IPC
调用的方式与用户进程相互传递信息。
Ability 子系统在服务层的模块为 AbilityManagerService
。
2.4 用户进程
用户进程 (User Process)是指OpenHarmony
上层的应用进程,包括系统应用与三方应用等,各应用一般运行在独立的用户进程中。用户进程包含框架层的各模块逻辑,其通过框架层的接口以 IPC
调用的方式使用服务层的系统服务。
3 类间关系
本段将展示服务层