车库模式

车库模式可以为汽车提供空闲时间,方法是让系统保持唤醒状态,直到 JobScheduler 中受空闲性约束的作业可以执行为止。

什么是车库模式?

在手机等联网设备上,用户依靠系统来使设备保持稳定、最新和优化状态。为了达到这种状态,Android 平台设计了一个特殊的空闲时间窗口,使应用能够在用户未与手机互动且设备处于空闲状态时执行任务。如果用户长时间(超过 60 分钟)未轻触手机且屏幕关闭,则该手机被视为处于空闲状态。

与手机不同,未使用的汽车处于关闭状态,这意味着应用没有空闲时间窗口。我们创建车库模式,是为了确保汽车有空闲时间。

车库模式在使用时需要满足 Android 兼容性要求。如需了解详情,请参阅 Android 兼容性定义文档 (CDD)

OEM 实现指南

要激活车库模式,在关闭车辆时,车载 HAL (VHAL) 必须将 AP_POWER_STATE_REQ 发送到状态 SHUTDOWN_PREPARE,同时将该参数设置为 SHUTDOWN_ONLYCAN_SLEEP

要明确指定状态 SHUTDOWN_PREPARE,VHAL 必须为 AP_POWER_STATE_REQ 命令指定两个参数(状态和附加参数)。这使设备能够进入车库模式,该模式会检测 JobScheduler 中的计划作业,并防止系统在作业完成之前继续挂起或关闭。

OEM 如何连接到 AOSP 框架?

对于车库模式,该框架会请求 VHAL 延长关闭时间,直到时长超过 15 分钟或所有作业都已执行,此时 OEM HAL 应该给予更长时间。HAL 级别的 OEM 实现仍然可以在不考虑框架请求的情况下关闭系统。

第三方开发者如何使用车库模式?

应用和服务不会直接与车库模式互动。相反,应用可以在 JobScheduler 中安排作业,而那些受空闲性约束的作业将在车库模式期间执行。