×

Гоу на улицу за покемоном

Сигнал от акселерометра подсказывает, что держу телефон под углом 32°, а значит экран читабелен даже под июльским солнцем. Нажимаю «Start» в Pokemon Go и выдыхаю: пакетный загрузчик NIA выполняет рукопожатие с облаком за 180 мс. Соединение LTE band 7, RSRP −92 dBm — терпимо для городского каньона. Я выхожу из подъезда, и виртуальные звери уже ждут.

Архитектура трафика

У Niantic три слоя обмена: protobuf-упакованные координаты, бинарные кассеты и push-ивенты. Первый слой идёт каждые 5 секунд, объём 2–4 КБ. Бинарные кассеты кэшируются в локальной квоте 120 МБ, что снижает толчки по радиоинтерфейсу. Push-ивенты приходят по каналу FCM, keep-alive 28 минут удерживает сокет без чатов. Роутер с ECN сглаживает латентность в час-пик.Pokemon Go

Тонкости энергопрофиля

Экран OLED съедает львиную долю запаса, но GPS сопровождает его почти вровень. Я включаю duty-cycling: GPS просыпается каждые 12 секунд, промежутки заполняет гироскоп плюс модель инерциальной навигации. Результат — минус 18 % за час прогулки вместо привычных 32 %. Для хаптической отдачи отдаю приоритет каналу «VIB_COMPOSE», снижаю амплитуду до 30 %. Аккумулятор NMC811 ненавидит тепловой свист, беру с собой алюминиевую радиатор-пластину 1 мм — простой, но действенный эксгаустер.

Маршруты и оптимизация

На карте вижу пять пока стопов, распределённых вдоль трёх кварталов. Алгоритм «рысак» строит путь с учётом углов поворотов, исключая жёсткие 180°. Движок A* ест мало CPU, троттлинг не грозит. Расширенная реальность подключается прыжком в CoreML: модель Segformer отделяет асфальт от зелени и прячет Пикачу за урной — реализм плюс безопясность. Через 40 минут ловлю 15 существ, выгружаю логи в Prometheus и меряю jitter: 22 м с p95. Достаточно ровно, чтобы завтра повторить маршрут с группой тестеров.

Возвращаюсь к зарядке, сливаю статистику в Grafana и настраиваю alert: при GPS DOP > 4 скрипт переключит меня на Galileo E1. Следующая вылазка запланирована на рассвет — трафик слаб, город прохладен, а редкий Axew любит утренний спектр.