Начиная с 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 в API для разработчиков появилось новое игровое состояние isLoading
. Это игровое состояние использует новый режим питания GAME_LOADING
в службе Power Manager для уведомления Power HAL о состоянии игры верхнего уровня. Получив уведомление о состоянии загрузки игры, Power HAL может скорректировать настройки производительности платформы и тактовую частоту процессора, что приводит к ускорению загрузки.
Чтобы указать, что игра загружается, игровое приложение использует панель управления игрой (Game Dashboard) для установки состояния isLoading
в диспетчере игры (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 в режиме производительности.