С релизом Pokemon Go я накинул на рюкзак повербанк, включил сбор телеметрии и вышел из офиса в асфальтовый каньон. Цель — оценить, как игра обращается с радиомодулями и сколько милиампер-часов исчезает за одну охоту. Для понимания таких просадок полезно заглянуть в аккумулятор подробнее. Особенно заметно это на устройствах с несъёмным аккумулятором, где деградация батареи со временем ограничивает автономность всего смартфона.

Тепловая карта запросов
Дифференциальный GPS (DGPS) под солнечным небом выдаёт разброс до трёх метров, тот же при отражениях от витрин уходит в семь. Игра опрашивает fused-location-stack раз в 700 мс, запрашивая флаг HIGH_ACCURACY. Каждый второй кадр сопровождается вызовом сессии gyroscope-drift-compensation, из-за чего SoC дергает шину I²C чаще, чем при видеозвонке. При плотном спавне сервер подбрасывает Push-nudge, и приложение мгновенно инициирует SSL-handshake, удлиняя хвост радиопередатчика на 1,2 с. Суммарно стек тратит 380 мВт только на удержание канала.
Полевые наблюдения
На Snapdragon 8+ Gen 1 средний drawdown составил 14 % за час при 120 кд/м² яркости. Exynos 2100 прожигает 18 %, ведь scheduler переносит часть операций на Cortex-X1 без hotplug-паузы. Чипы Mediatek Dimensity 9000 удерживают паритет с Qualcomm, но шаг частоты GPU сглажен кубическим сплайном, из-за чего пиковый импульс короче. LTO-кэш показал интересную картину: через двадцать минут прогрев — drift коэффициент 1,03 ppm, тогда как без игры держится 0,27. Причина — постоянное чтение Niantic-овского protobuf, нагружающее big-cluster.
Fused-запросы лучше чередовать с ACTIVITY_RECOGNITION: акселерометр вытягивает класс ходьбы без GPS, экономя 90 мВт. В фоновом режиме handshake стоит объединять через HTTP 2-multiplex, сокращая radio-tail. Игроку же достаточно включить режимм «только GPS», притушить OLED до 80 кд/м² и держать power-bank выше 10 Вт·ч. Тогда охота переживет пять-шесть рейдов без визита к розетке. А редкий труп батареи под шпилем небоскрёба больше не застанет врасплох.