【鸿蒙南向开发】OpenHarmony 源码解析之 Ability子系统

1 简介

本文档基于 OpenHarmony 2.2 Beta2 源码的 L2 设备部分编写因鸿蒙系统目前处在快速发展时期,本文中的一些内容可能会过时,建议在阅读的同时参考最新代码以了解更实时的知识。

Ability 子系统实现了对 Ability 的运行及生命周期进行统一的调度和管理,应用进程能够支撑多个 Ability,Ability 具有跨应用进程间和同一进程内调用的能力。Ability 管理服务统一调度和管理应用中各 Ability,并对Ability的生命周期变更进行管理。

该子系统在 OpenHarmony 架构中的位置见下图中红框 (这里有意增加了红框的尺寸,因为其内部逻辑除了 Ability 框架外,还包含了部分用户程序框架与系统服务层的内容)。对于应用进程来说,Ability 子系统是与之关系最紧密的核心系统模块。

1.1 OpenHarmony 架构图

image.png

2 基础知识

Ability 子系统的架构如下图所示。可以看到其分两个模块,其中 Ability Kit 模块位于 User Process (用户进程),而 AbilityManagerService 模块位于 Service Layer (服务层)。这两个模块内部由多个相关联的子模块组成。

Ability 子系统架构图

image.png

要理解 Ability 框架,需要先了解以下概念:

2.1 Ability

Ability 是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个 Ability。

Ability 分为 FA (Feature Ability)PA (Particle Ability) 两种类,其中 FA 支持 Page Ability,PA 支持 Service AbilityData Ability

2.2 Ability 生命周期

Ability 生命周期 (Ability Life Cycle) 是 Ability 被调度到 INACTIVE \ ACTIVE \ BACKGROUND 等各个状态的统称 (主要涉及 PageAbility 类型和 ServiceAbility 类型的 Ability)。

  • PageAbility 类型的 Ability 生命周期流转如下图所示

image.png

  • ServiceAbility 类型的 Ability 生命周期流转如下图所示

image.png

如果希望了解更详细的关于 Ability 的知识,可以搜索参阅关于鸿蒙 Ability 的其他文档。我们之后也会编写一些详解 Ability 的文档并分享。

2.3 服务层

服务层 (Service Layer) 的各模块运行在 OpenHarmony 的各系统进程中,用于与底层交互并支撑上层框架层的功能,其通过IPC调用的方式与用户进程相互传递信息。

Ability 子系统在服务层的模块为 AbilityManagerService

2.4 用户进程

用户进程 (User Process)是指OpenHarmony上层的应用进程,包括系统应用三方应用等,各应用一般运行在独立的用户进程中。用户进程包含框架层的各模块逻辑,其通过框架层的接口以 IPC 调用的方式使用服务层的系统服务。

3 类间关系

本段将展示服务层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值