游戏加载时性能提升

为了缩短游戏的加载时间,Android 13 在 Android 动态性能框架 (ADPF) 中引入了一个名为 GAME_LOADING 的新电源模式。GAME_LOADING 会向 Power HAL 指明游戏应用是否处于加载状态,以便 Power HAL 可以提供加载速度提升。此指示可让 Power HAL 提供性能提升措施,从而缩短游戏加载时间。

本页介绍了游戏应用如何将游戏状态传递给 Power HAL,并说明了如何配置 Power HAL 以便在您的设备中充分利用它,以及如何测试您的 Power HAL 实现。

加载状态检测和通知

加载速度提升模式的工作原理是检测游戏应用何时处于加载状态,并通知 Power HAL。Android 13 在面向开发者的 API 中引入了一个名为 isLoading 的新游戏状态。此游戏状态使用电源管理器服务中新增的 GAME_LOADING 电源模式来向 Power HAL 发送有关顶级游戏状态的通知。Power HAL 收到游戏加载状态通知后,可以调整平台的性能设置和 CPU 时钟频率,从而缩短加载时间。原始设备制造商 (OEM) 可以选择在 Power HAL 中实现和自定义加载速度提升。如需了解详情,请参阅自定义 Power HAL 实现部分。

为了表明游戏正在加载,游戏应用会使用游戏信息中心在游戏管理器中设置 isLoading 状态。游戏管理器将此状态传递给游戏管理器服务,后者将 setPowerMode 与新增的 GAME_LOADING 电源模式结合使用,以调用电源管理器服务。GAME_LOADING 电源模式会向 Power HAL 发出指示,告知其游戏处于加载状态,以便 Power HAL 可以提供加载速度提升。

下图说明了从应用到 Power HAL 的信息流,用以指示加载状态:

loading-boost

图 1. 用于指示游戏处于加载状态的信息流。

自定义 Power HAL 以缩短游戏加载时间

为了利用 GAME_LOADING 模式,OEM 必须在游戏加载模式下自定义其 Power HAL 实现。提高 CPU 时钟速度、暂时降低温度节流以及提升 CPU 优先级以优先处理前台任务等措施都有助于提升性能。

由于性能提升与硬件相关,因此在发布 Google Pixel 设备的参考实现之前,没有针对提升模式的参考实现。

借助游戏信息中心,用户可以通过“性能设置”来启用或停用加载速度提升功能。默认情况下,“性能设置”始终处于关闭状态。

测试和验证游戏加载实现

如需测试实现,请使用 android.gamemanager.cts.GameManagerTest#testSetGameContext。该测试会验证具有 isLoading 上下文的 GameManager::setGameContext() 是否会在处于性能模式下的 Power HAL 上调用游戏加载模式。

不过,由于此功能的实现与硬件相关,因此 OEM 必须自行执行手动测试,以了解使用此功能时游戏加载时间是否缩短了。