Оптимізація споживання батареї мобільною грою

Ваша мобільна гра швидко розряджає батарею, і користувачі залишають негативні відгуки, навіть якщо продуктивність у порядку. Ми проводимо комплексну оптимізацію енергоспоживання: від керування FPS і шейдерів до батчингу мережевих запитів. Наша команда реалізує проєкт під ключ, забезпечуючи стабільну роботу та подальшу підтримку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Оптимізація споживання батареї мобільною грою
Середній
~2-3 дні
Часті запитання

Оптимізація споживання батареї мобільною грою

Вступ

Ми часто бачимо ігри, які розряджають телефон за півтори години. При стабільних 60 FPS користувачі все одно залишають одно- та двозіркові відгуки — батарея тане на очах. Споживання енергії — прямий індикатор неефективного використання CPU та GPU. Зниження енергоспоживання мобільною грою — це системна робота: від контролю частоти кадрів до шейдерних програм та мережевих запитів. Компанія має 5+ років досвіду (з 2019), реалізовано 15+ успішних проєктів, сертифікації Unity та Apple. Гарантуємо вимірний результат.

Вартість базового аудиту — від 500$, повна оптимізація — від 2000$ залежно від складності. Зв'яжіться з нами для консультації.

Які головні джерела перевитрати енергії?

Необмежений FPS — найпоширеніша помилка. Application.targetFrameRate = -1 (або без явного встановлення) означає, що Unity рендерить так швидко, як може. На сучасних iPhone з ProMotion-дисплеєм це 120 FPS у простому меню. Для меню достатньо 30 FPS — решта 70% CPU/GPU-часу витрачаються марно і гріють корпус.

Анімований фон у головному меню з 500 частинками працює постійно. Немає паузи при втраті фокусу — немає економії.

Якщо гра запитує Input.location або Input.gyro без потреби й не вимикає — сенсори опитуються постійно. На Android це кілька мВт додатково.

Маленькі HTTP-запити кожні 5–10 секунд тримають радіомодуль активним — один із найенергоємніших компонентів.

Інструменти профілювання

Для виявлення перевитрат енергії використовуйте профілювання:

Інструмент Що показує Норма
Xcode Energy Organizer Оцінка енергоспоживання для iOS Зелений рівень
Android Vitals Battery Частота пробуджень у фоні < 10 разів/год
adb shell dumpsys batterystats Розбивка за компонентами (CPU, GPU, радіо) CPU/GPU < 30% у меню

Якщо меню тримає CPU/GPU на 70% — це проблема.

Керування FPS як основа оптимізації

Правильна стратегія — різні таргети для різних станів. Наприклад, зниження FPS у меню з 60 до 30 дає економію CPU на ~40%.

// Gameplay: максимальна якість
Application.targetFrameRate = 60;
// Меню, паузи, діалоги
Application.targetFrameRate = 30;
// Фонові обчислення (завантаження, збереження)
Application.targetFrameRate = 15;

На iOS потрібно також враховувати ProMotion-дисплеї (120 Гц на iPhone 13 Pro+). Явно встановлюйте CADisplayLink.preferredFrameRateRange через Native Plugin для тонкого налаштування.

У OnApplicationPause(true) знижуйте FPS до мінімуму або зупиняйте рендер повністю.

Як оптимізувати шейдери для економії батареї?

На мобільних GPU важлива точність обчислень. Використання half-точності замість float у шейдерах на Adreno та Mali дає реальну економію енергії — half-точність енергоефективніша за float на 30%, тобто краще у 1.3 рази. ALU цих чіпів оптимізовані під half-precision. Для більшості ефектів (колір, UV, освітлення) точності half достатньо.

Запечені лайтмапи замість динамічного освітлення знижують навантаження на фрагментний шейдер у 3–5 разів — це пряме порівняння: запечені лайтмапи кращі за динамічне освітлення в 3–5 разів за навантаженням на GPU. Складні фрагментні шейдери з великою кількістю текстурних вибірок особливо дорогі — кожне tex2D зупиняє графічний конвеєр.

Порівняння підходів до рендерингу:

Підхід Відносне навантаження Приріст часу роботи
Динамічне освітлення 100% (базовий рівень) —
Запечені лайтмапи 20–30% +20–40%
Half-точність всюди 70% +15%

Первинна діагностика енергоспоживання

  1. Встановіть цільові FPS для кожного стану (геймплей, меню, пауза).
  2. Перевірте шейдери: замініть float на half, запікайте лайтмапи.
  3. Налаштуйте батчинг мережевих запитів — буферизуйте та відправляйте пачкою раз на хвилину. Батчинг знижує енергоспоживання радіомодуля у 2-3 рази порівняно з частими запитами.
  4. Профілюйте на реальному пристрої за допомогою Xcode або adb.

Батчинг мережевих запитів

Замість відправлення подій по одному — батчинг (буферизація та відправка пачкою раз на хвилину). Firebase Analytics робить це автоматично. Якщо використовується власна аналітика через HTTP — явний RequestQueue з таймером.

На Android WorkManager з setRequiresBatteryNotLow(true) відкладає некритичні запити до моменту, коли пристрій на зарядці.

Що входить в роботу (deliverables)

  • Аналіз коду та конфігурацій проєкту.
  • Профілювання на реальних пристроях з використанням Xcode Energy Organizer та Android Vitals.
  • Налаштування FPS за контекстом (геймплей, меню, фон).
  • Оптимізація шейдерів (переведення на half-точність, запікання лайтмапів).
  • Реалізація батчингу мережевих запитів.
  • Документація: звіт з метриками та рекомендаціями.
  • Доступ до результатів профілювання.
  • Опціонально: навчання команди замовника.
  • Технічна підтримка після впровадження (2 тижні).
  • Повторне тестування та надання оновленого звіту з метриками.
  • Гарантія збільшення часу роботи на 20–40%.
Чек-лист типових помилок
  • Немає обмеження FPS у меню.
  • Частинки не зупиняються при паузі.
  • Сенсори опитуються постійно.
  • Мережеві запити по одному без агрегації.

Терміни робіт: від 1 до 4 тижнів залежно від обсягу коду. Вартість аудиту від 500$, повна оптимізація — від 2000$. Отримайте консультацію вже сьогодні.

Перевірка результату

iOS: Xcode Energy Organizer + MetricKit. MXCPUMetric та MXGPUMetric у didReceive дають реальні дані про споживання зі звітів користувачів.

Android: Android Vitals у Play Console → Battery → Excessive wakeups. Якщо додаток будить пристрій частіше 10 разів на годину у фоні — це прапорець від Google, який впливає на видимість.

Для локального тестування: adb shell dumpsys batterystats --reset перед тестом та adb shell dumpsys batterystats після.

Наші сертифіковані інженери проводять аудит з гарантією збільшення часу роботи на 20–40%. Зв'яжіться з нами — оцінимо проєкт.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1009
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    902
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1106
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714