Начиная с 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.
Обнаружение и уведомление режима питания
В этом разделе описывается, как Power Manager обрабатывает режимы GAME
и GAME_LOADING
.
ИГРОВОЙ режим мощности
Новый режим питания GAME
в Android 14 указывает службе Power Manager , что пользователь играет в игру. Когда Power HAL получает уведомление о режиме GAME
, он может регулировать мощность для повышения производительности, снижения температуры и продления срока службы батареи во время игры.
На следующем рисунке поясняется поток информации к Power HAL для указания режима питания GAME
:
Рисунок 1. Информационный поток, указывающий на то, что игра ведется.
Режим питания GAME
всегда устанавливается для приложений с appCategory
GAME
в AndroidManifest.xml
.
GAME_LOADING режим мощности
Режим ускорения загрузки работает, определяя, когда игровое приложение находится в состоянии загрузки, и уведомляя Power HAL. В Android 13 в API, ориентированном на разработчиков, представлено новое состояние игры под названием isLoading
. Это состояние игры использует новый режим питания GAME_LOADING
в службе Power Manager для уведомления Power HAL о состоянии игры верхнего уровня. Как только Power HAL получит уведомление о состоянии загрузки игры, он сможет настроить параметры производительности платформы и тактовую частоту процессора, что приведет к сокращению времени загрузки.
Чтобы указать, что игра загружается, игровое приложение использует игровую панель для установки состояния isLoading
в диспетчере игр. Game Manager передает это состояние службе Game Manager, которая использует setPowerMode
с новым режимом питания GAME_LOADING
для вызова службы Power Manager. Режим мощности 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
, OEM-производители могут реализовать комбинацию следующих мер:
- Стабилизировать частоту кадров
- Увеличение тактовой частоты процессора
- Временно уменьшите регулирование температуры
- Назначьте более высокий приоритет ЦП игровому приложению на переднем плане.
- Уменьшите разгон процессора, настроенный для обычных, неигровых приложений.
- Оптимизация стратегии распределения электроэнергии, связанной с теплом
Тестовая реализация режима GAME
Чтобы протестировать реализацию режима GAME
, используйте тесты с префиксом testGamePowerMode_
в GameManagerServiceTests.java
.
Тестирование реализации GAME_LOADING
Чтобы протестировать реализацию режима GAME_LOADING
, используйте android.gamemanager.cts.GameManagerTest#testSetGameContext
. Этот тест проверяет, вызывает ли GameManager::setGameContext()
с контекстом isLoading
режим загрузки игры на Power HAL в режиме производительности.