Начиная с Android 14, новый режим питания под названием GAME
в Android Dynamic Performance Framework (ADPF) позволяет настраивать производительность телефона во время использования игры. GAME
указывает Power HAL, что игровое приложение находится на переднем плане. Это указание позволяет Power HAL применять стратегии управления питанием во время игры, чтобы пользователь мог получить стабильную и улучшенную производительность.
Чтобы обеспечить улучшение времени загрузки игры, Android 13 представляет новый режим питания под названием GAME_LOADING
в ADPF. GAME_LOADING
указывает, находится ли игровое приложение в состоянии загрузки, чтобы Power HAL мог обеспечить ускорение загрузки. Это указание позволяет Power HAL обеспечить меры по повышению производительности, которые могут ускорить время загрузки игры.
На этой странице описывается, как игровое приложение передает состояние игры в Power HAL, объясняется, как настроить Power HAL, чтобы воспользоваться его преимуществами на ваших устройствах, а также как протестировать реализацию Power HAL.
Обнаружение и уведомление режима питания
В этом разделе описывается, как диспетчер питания обрабатывает режимы GAME
и GAME_LOADING
.
Режим мощности GAME
Новый режим питания GAME
в Android 14 указывает службе Power Manager , что пользователь играет в игру. Когда Power HAL уведомляется о режиме GAME
, он может регулировать питание для повышения производительности, снижения температуры и продления срока службы батареи во время игры.
На следующем рисунке поясняется поток информации, поступающей в Power HAL для указания режима питания GAME
:
Рисунок 1. Поток информации, указывающий на то, что идет игра.
Режим питания GAME
всегда устанавливается для приложений с appCategory
GAME
в AndroidManifest.xml
.
GAME_LOADING режим питания
Режим ускоренной загрузки работает путем обнаружения состояния загрузки игрового приложения и уведомления Power HAL. Android 13 представляет новое игровое состояние под названием isLoading
в API, ориентированном на разработчика . Это игровое состояние использует новый режим питания GAME_LOADING
в службе Power Manager для уведомления Power HAL о состоянии игры верхнего уровня. После того, как Power HAL уведомлен о состоянии загрузки игры, он может настроить параметры производительности платформы и тактовую частоту процессора, что приводит к улучшению времени загрузки.
Чтобы указать, что игра загружается, игровое приложение использует Game Dashboard для установки состояния isLoading
в Game Manager. Game Manager передает это состояние в Game Manager Service, который использует setPowerMode
с новым режимом питания GAME_LOADING
для вызова Power Manager Service. Режим питания GAME_LOADING
указывает Power HAL , что игра находится в состоянии загрузки, чтобы Power HAL мог обеспечить ускорение загрузки.
На следующем рисунке показан поток информации от приложения к Power HAL для указания состояния загрузки:
Рисунок 2. Поток информации, указывающий на то, что игра находится в состоянии загрузки.
Панель управления игрой позволяет пользователям включать или выключать функцию ускорения загрузки с помощью настройки производительности. Настройка производительности всегда по умолчанию выключена.
Настройте Power HAL с помощью GAME и GAME_LOADING
Чтобы воспользоваться преимуществами режимов GAME
и GAME_LOADING
, OEM-производители должны настроить свою реализацию Power HAL . Поскольку управление питанием и повышение производительности зависят от оборудования, никакие эталонные реализации для режимов GAME
или GAME_LOADING
не будут доступны до тех пор, пока не будет выпущена эталонная реализация для устройства Google Pixel.
Для повышения производительности в режимах GAME
и GAME_LOADING
производители оригинального оборудования могут реализовать комбинацию следующих мер:
- Стабилизировать частоту кадров
- Увеличить тактовую частоту процессора
- Временно уменьшите регулирование температуры
- Назначьте более высокий приоритет ЦП игровому приложению переднего плана
- Уменьшение разгона ЦП для обычных, неигровых приложений
- Оптимизировать стратегию распределения тепловой энергии
Тестовая реализация режима GAME
Чтобы протестировать реализацию режима GAME
, используйте тесты с префиксом testGamePowerMode_
в GameManagerServiceTests.java
.
Тестовая реализация GAME_LOADING
Для проверки реализации режима GAME_LOADING
используйте android.gamemanager.cts.GameManagerTest#testSetGameContext
. Этот тест проверяет, вызывает ли GameManager::setGameContext()
с контекстом isLoading
режим загрузки игры на Power HAL в режиме производительности.