游戏性能提升

从 Android 14 开始,Android 动态性能框架 (ADPF) 中新增了一种名为 GAME 的电源模式,可在游戏使用期间自定义手机性能。GAME 向 Power HAL 指示游戏应用在前台运行。此指示允许 Power HAL 在玩游戏时采用电源管理策略,以便用户体验到稳定且得到改善的性能。

为了缩短游戏的加载时间,Android 13 在 ADPF 中引入了一种名为 GAME_LOADING 的新电源模式。GAME_LOADING 指示游戏应用是否处于加载状态,以便 Power HAL 可以提供加载加速。此指示允许 Power HAL 提供性能加速措施,从而加快游戏加载时间。

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

电源模式检测和通知

本节介绍 Power Manager 如何处理 GAMEGAME_LOADING 模式。

GAME 电源模式

Android 14 中的新电源模式 GAMEPower Manager Service 指示用户正在玩游戏。当 Power HAL 收到 GAME 模式的通知时,它可以调整电源以增强性能、降低温度并延长电池续航时间(在玩游戏时)。

下图说明了向 Power HAL 发送信息以指示 GAME 电源模式的流程

game-mode

图 1. 指示正在玩游戏的信息流。

GAME 电源模式始终为在 AndroidManifest.xmlappCategoryGAME 的应用设置。

GAME_LOADING 电源模式

加载加速模式通过检测游戏应用何时处于加载状态并通知 Power HAL 来工作。Android 13 在面向开发者的 API 中引入了一种名为 isLoading 的新游戏状态。此游戏状态使用 Power Manager Service 中的新 GAME_LOADING 电源模式来通知 Power HAL 最顶层游戏状态。一旦 Power HAL 收到游戏加载状态的通知,它就可以调整平台的性能设置和 CPU 时钟速率,从而缩短加载时间。

为了指示游戏正在加载,游戏应用使用游戏控制面板在 Game Manager 中设置 isLoading 状态。Game Manager 将此状态传递给 Game Manager Service,后者使用带有新 GAME_LOADING 电源模式的 setPowerMode 来调用 Power Manager Service。GAME_LOADING 电源模式向 Power HAL 指示游戏处于加载状态,以便 Power HAL 可以提供加载加速。

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

loading-boost

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

游戏控制面板允许用户使用“性能设置”来开启或关闭加载加速功能。“性能设置”始终默认为关闭。

使用 GAME 和 GAME_LOADING 自定义 Power HAL

为了利用 GAMEGAME_LOADING 模式,OEM 必须自定义其 Power HAL 的实现。由于电源管理和性能加速是硬件特定的,因此在发布 Google Pixel 设备的参考实现之前,不会提供 GAMEGAME_LOADING 模式的参考实现。

为了增强 GAMEGAME_LOADING 模式下的性能,OEM 可以选择实施以下措施的组合

  • 稳定帧率
  • 提高 CPU 时钟速度
  • 暂时降低温度限制
  • 为前台游戏应用分配更高的 CPU 优先级
  • 降低为常规非游戏应用调整的 CPU 加速
  • 优化与散热相关的功耗分配策略

测试 GAME 模式实现

要测试 GAME 模式的实现,请使用 GameManagerServiceTests.java 中带有 testGamePowerMode_ 前缀的测试。

测试 GAME_LOADING 实现

要测试 GAME_LOADING 模式的实现,请使用 android.gamemanager.cts.GameManagerTest#testSetGameContext。此测试验证带有 isLoading 上下文的 GameManager::setGameContext() 是否在性能模式下调用 Power HAL 上的游戏加载模式。