若要了解活动协调器 API,请务必熟悉 API 使用的术语。
活动协调器 API 协调在系统上执行可延迟的任务(称为活动)。 开发人员可以使用 API 获取基于所需系统状态启动或停止活动的时间通知。 此状态由策略定义,该策略描述运行活动时系统资源的最佳条件。 开发人员订阅这些策略,以便向提供的回调发送通知,这些通知用于协调其活动的执行。
注意
这些通知用于协调低优先级或资源密集型任务,这些任务可以延迟到以后的时间。 如果某个高优先级任务需要执行,而不管系统条件如何,它都不应依赖于此 API。
特定于 API 的术语
资源
资源是受活动使用或影响的系统的物理组件或属性。 简单示例是传统系统资源,如 CPU、系统磁盘和 GPU。 不太传统的资源包括电源和用户空闲等内容。
条件
条件是资源所需状态的定性描述,因为 良好的、中等或 未设置。 在基本级别,良好的条件 意味着使用资源 好时机。 可以使用各种维度评估给定的资源条件对。
开发人员必须选择要用于单个资源的条件,以便符合工作负荷的需求。 这允许 API 在其使用者之间最好地协调工作。
可延迟
延迟任务 是那些不会立即影响应用程序用户体验的任务,尽管长时间的执行不会导致整体体验受到影响。 通常,这些任务不需要立即运行,并且可以将其执行延迟到系统处于理想状态的时间。 这些是运行任务不会干扰用户体验或系统性能的时间。 此类任务可能包括:
- 重新为媒体目录编制索引
- 训练或更新建议模型
- 安装插件更新
活动
活动 是开发人员定义的 可延迟的工作单元。 活动本身会消耗系统资源来执行,这可能会导致用户体验受到影响。 开发人员必须了解其活动如何使用这些资源,以便他们能够适当地使用该 API。 然后,他们可以使用 API 将活动执行延迟到更理想的时间,而不是立即执行此类工作,这可能会影响用户体验。
政策
策略通过描述运行或受开发人员活动影响的各种资源所需的所需条件来定义 理想的时间 时间。 策略由多个资源和条件对构成,定义单个 资源条件。
策略可以指定电源、内存和 CPU 等资源的条件,但也会根据资源相关性排除 GPU 等资源。 如果满足所有资源条件并 关闭,则会将策略视为 打开。 策略不描述活动预期消耗的给定资源量。 API 使用策略配置在 API 使用者之间进行协调决策。
配置策略时,建议开发人员从每个资源的最佳(良好)条件开始,以便在执行最可能影响用户体验或系统性能时,API 可以帮助他们在最佳时间运行。 条件可能会降低(例如,从 良好的 到 中等),如果活动没有通知运行频率足够或足够长,以满足开发人员的需求。
订阅
订阅是活动的协调机制。 开发人员使用回调订阅策略,API 通过协调通知调用该策略。 这些通知通知通知开发人员何时应启动/恢复或停止/暂停其活动。 通知基于订阅策略的资源条件,在订阅时配置,以及 API 做出的协调决策。
策略模板
枚举 ACTIVITY_COORDINATOR_POLICY_TEMPLATE的成员。 创建策略以预先配置策略时,可以使用这些策略来预先配置它,这些条件旨在满足大多数活动的常见需求,并最大程度地减少对用户的影响。
降级
可以 降级 策略或资源,方法是将策略或资源从更好更改为更小的条件,使其更宽松,并增加策略条件得到满足的可能性。 例如,可以通过将其更改为 中等 条件来降级 CPU 的 良好 条件。 中等条件的限制性较低,因此更有可能满足。 在策略级别,这会增加策略打开的可能性(所有资源条件都得到满足)的频率和更长的时间,请记住,这些可能是导致用户影响或降低系统性能的可能性更大的时候。
可用作
API 允许开发人员执行以下作:
- 配置策略。
- 订阅/取消订阅策略通知。
从空策略配置或面向大多数应用需求的模板配置之一开始,API 可以灵活地自定义策略以最适合开发人员方案。 最简单的情况是:
- 在 ACTIVITY_COORDINATOR_POLICY_TEMPLATE中使用模板策略 ID 分配策略。
对于更多自定义开发人员方案,
- 分配模板策略(可能为空策略)。
- 设置相关资源的所需条件。