mobilegamedevandroidfragmentationregression

Android-фрагментация для мобильной игры — что ломают MIUI, One UI, EMUI и battery savers Oppo/Vivo

«На Pixel работает, на Xiaomi падает, на Samsung другие баги, на Huawei вообще нет Google Play — что мы тестируем?» — типичный разговор в команде мобильной игры в 2026. Android-фрагментация в 2026 не «исчезла со временем», как обещали — стала хуже. OEM-моды ушли ещё дальше от AOSP, у каждого свои aggressive battery savers, кастомные permissions, отдельные нотификационные стеки.

Этот гайд — что именно ломается в мобильной игре на топ-6 OEM (Xiaomi, Samsung, Huawei, Oppo, Vivo, OnePlus), как тестировать без покупки 30 устройств, и что обязательно класть в bug-репорт с Android-фрагментацией. Базовый референс по «кто кого убивает» — community-база dontkillmyapp.com.

Почему фрагментация в 2026 хуже, чем в 2018

  • OEM-моды стали ещё дальше от AOSP. MIUI на Android 14 имеет более 200 кастомизаций, ColorOS — около 150.
  • Aggressive battery savers — стандарт у всех кроме Pixel и Motorola. Killing apps в фоне через 30–60 секунд — типичное поведение.
  • Huawei после санкций — отдельная экосистема: HarmonyOS NEXT, HMS вместо GMS, AppGallery вместо Play. Это не «Android с другим лаунчером», это другой стек.
  • В Китае Android-устройства идут без Google Services вообще — отдельный QA-фронт для команд, ориентированных на CN-рынок.
  • Foldable, dual-screen, под-экранные камеры — новые форм-факторы добавляют визуальные регрессии.

Большая шестёрка OEM и их специфические проблемы

Xiaomi MIUI / HyperOS

  • Autostart permission — отдельное разрешение «дать приложению запускаться в фоне». По умолчанию OFF. Без него FCM-пуши не доходят, background music обрывается. Тест: Settings → Apps → Permissions → Autostart → проверь что для твоей игры on.
  • Background restrictions — даже с autostart MIUI убивает фоновые процессы через 30 секунд, если приложение не в whitelist’е Memory & Battery.
  • MIUI Optimization — флаг в Developer Options. Включён по умолчанию, агрессивно убивает background. Часть багов воспроизводится только когда он включён.
  • Notification quirks — Notification channels работают, но MIUI добавляет свою notification importance, которая может перетереть Android-уровень.
  • Game Turbo — MIUI меняет CPU governor и memory allocation для игр. Может ломать perf-тесты, потому что в Turbo всё быстрее, без Turbo — нет.

Samsung One UI

  • Device Care → Sleep apps — Samsung автоматически переводит «редко используемые» apps в Deep Sleep, прекращает фоновые задачи. Проблема для daily-engagement игр и push-уведомлений.
  • Edge Panel — конфликтует с edge-gestures игры (отрытое меню, ползунок громкости). Тестируй с включённым/выключенным Edge Panel.
  • S Pen — на Note/Ultra-устройствах S Pen генерирует hover/click события. Игра должна корректно обрабатывать air-gestures и hover-state.
  • Game Booster — Samsung-аналог Game Turbo. Аналогичные perf-эффекты, плюс автоматические DnD.
  • Folding (Z Fold/Flip) — multi-window, app continuity при разворачивании, разные resolutions внутри и снаружи.

Huawei EMUI / HarmonyOS NEXT

  • Нет Google Mobile Services — FCM не работает. Используй HMS Push Kit. HMS docs. Это значит две интеграции, два набора тестов.
  • AppGallery вместо Play — другой биллинг, другая review-процедура. IAP-тесты надо повторять полностью.
  • App Twin — Huawei умеет клонировать приложение для второго аккаунта. Игра должна работать в двух экземплярах одновременно (отдельные save-файлы, отдельные logins).
  • HarmonyOS NEXT (с 2024) — это уже не Android. Apps могут не запускаться вообще, требуется отдельный билд под ArkTS. Если CN-рынок важен — отдельный QA-track.

Oppo ColorOS / Vivo OriginOS

  • Самый агрессивный battery saver на рынке. По данным dontkillmyapp.com — убивают apps быстрее, чем Xiaomi, и без явного permission «Allow background activity» вообще ничего в фоне не работает.
  • ColorOS Game Space — аналог Game Turbo, кастомные shortcuts (запись экрана, screenshot game-mode).
  • Не-стандартные системные диалоги — Oppo/Vivo любят показывать кастомные popup’ы поверх системных. Тестируй permission flow с реальным OEM-диалогом, не AOSP.
  • Realme — ColorOS-based, поэтому те же проблемы. Но на budget-устройствах добавляется проблема памяти (3-4 GB RAM).

OnePlus OxygenOS (после слияния с Oppo)

  • В 2021–2023 OxygenOS пере-базировался на ColorOS code. Теперь практически клон Oppo с другим UI.
  • Все проблемы ColorOS наследуются: aggressive battery, custom permissions.
  • Старые OnePlus (5T, 6, 7) на оригинальном OxygenOS — отдельный edge case, всё ещё в обращении.

Что именно ломается в мобильной игре

1. Push-уведомления

FCM по умолчанию работает только если у приложения есть autostart permission. На Xiaomi/Oppo/Vivo пользователь обычно её не давал. Результат — push’и не доходят, daily retention падает. На Huawei FCM не работает в принципе — нужна HMS Push Kit. См. Android Notification Channels — но OEM могут переопределять importance.

2. Background music и audio

Игра свернулась — должна продолжать играть фоновая музыка (если включено в settings) или корректно paused. На OEM с aggressive battery саундтрек обрывается через 30–60 секунд, и при возврате не возобновляется. Тестируй: свернуть → 2 минуты → развернуть.

3. Long-running игры и thermal throttling

MIUI Game Turbo, Samsung Game Booster, Vivo Ultra Game Mode — все они меняют CPU/GPU governor. С Turbo — игра летает, без Turbo (например, в фоне у Vivo) — fps падает в 2–3 раза. Регресс-тесты perf должны идти в обоих режимах.

4. In-app purchase — другой биллинг на Huawei

Google Play Billing работает только если установлен Play Store. На Huawei нужен AppGallery billing. Это две параллельных интеграции, два набора receipt-validation на backend, два UX-флоу для теста.

5. Permission UX

MIUI требует и runtime permission (Android-стандарт), и MIUI-уровневый autostart. Vivo требует runtime + «Allow background activity» в отдельных Battery-settings. Туториал «разрешите доступ» в игре должен учитывать оба уровня, иначе пользователь даёт runtime, а фоновые задачи всё равно не работают.

6. Deep links и shortcuts

На Xiaomi есть «MIUI App Shortcuts», которые по-другому реагируют на adaptive icons. На Samsung Edge Panel может перехватить deep link. Тестируй открытие игры из push, из shortcut, из ссылки в браузере, из шары в мессенджере — на каждом OEM.

7. Foldable / Dual-screen

Galaxy Z Fold / Flip: игра должна корректно реагировать на configuration change при разворачивании. Сохранять состояние боя, ре-инициализировать UI под новую resolution. Multi-window поверх игры — не должно ронять gameplay.

Стратегия тестирования без покупки 30 устройств

Минимальный набор реального железа в QA-лабе

  • Pixel (свежий) — baseline AOSP.
  • Samsung Galaxy (свежий flagship + 2-3-летний midrange) — One UI quirks.
  • Xiaomi (свежий + budget Redmi) — MIUI/HyperOS quirks.
  • Huawei (без GMS) — отдельный регресс HMS-интеграции.
  • Oppo или Vivo (budget) — aggressive battery saver, низкая RAM.
  • OnePlus (свежий) — OxygenOS на ColorOS-основе.
  • Foldable (Z Fold или Z Flip, или Pixel Fold) — для конфигурации с разворачиванием.

Это 7 устройств. Минимум для команды с EU/global-рынком. Для CN-фокуса добавь больше Vivo и Oppo.

Cloud device farms

  • Firebase Test Lab (firebase.google.com/docs/test-lab) — устройств немного, но реальные. Бесплатный tier для smoke.
  • BrowserStack App Live (browserstack.com/app-live) — 3000+ реальных устройств, manual session.
  • Sauce Labs Real Device Cloud — похоже на BrowserStack, плюс integration с Appium.
  • AWS Device Farm — дешевле в Amazon-экосистеме, меньше китайских устройств.
  • Kobiton, Headspin — нишевые, могут иметь редкие OEM.

Что важно: cloud-farms часто не имеют свежих китайских устройств с реальными OEM-моди. Для CN-релиза без локального QA-лаба не обойтись.

Что НЕ заменяет реальные устройства

  • Локальные эмуляторы (AVD) — показывают AOSP behavior, не OEM quirks. MIUI Battery Saver на эмуляторе не воспроизведёшь.
  • Genymotion — лучше AVD по UI, но всё ещё не настоящий MIUI.
  • BlueStacks / NoxPlayer — Android на десктопе, для геймплея ок, для системных багов — нет.

Чек-лист тестирования Android-фрагментации

  • Push приходит на Xiaomi с autostart OFF и autostart ON.
  • Push приходит на Huawei через HMS Push Kit (отдельный билд / интеграция).
  • Background music продолжается ≥ 5 минут после сворачивания на Oppo / Vivo / Xiaomi.
  • Game perf не падает >20% между Game Turbo ON / OFF (Xiaomi, Samsung, Oppo).
  • IAP проходит на Google Play Billing (все устройства) И AppGallery Billing (Huawei).
  • Permission tutorial учитывает MIUI Autostart и Vivo Allow Background.
  • Deep links открывают игру из push, browser, shortcut, share — на всех 6 OEM.
  • На foldable: разворачивание сохраняет состояние бой/уровень, ре-инициализирует UI без крашей.
  • На budget-Realme/Redmi с 3-4 GB RAM: игра не падает на низкой памяти, не убивается OOM-killer’ом.
  • Push notification channels настроены и работают на Android 8+ на всех OEM.
  • Notification importance на MIUI не понижается до Low автоматически.
  • Bug-репорт содержит OEM-имя + OS-версия + OS-skin build (MIUI 14.0.5, One UI 6.1) + autostart/battery state.

Что обязательно в bug-репорте про Android

  • Не «Android 14», а Android 14, MIUI 14.0.5, HyperOS 1.0.4.0.UMQCNXM.
  • Состояние MIUI Optimization / Game Turbo / Battery Saver на момент бага.
  • Autostart permission state для приложения.
  • RAM устройства + свободная RAM в момент бага (важно для budget-устройств).
  • Регион (CN-устройства могут вести себя иначе из-за регуляторных требований).

Android-фрагментация — это не «проблема будущего», это операционная реальность 2026 года. Команды, которые тестируют только на Pixel или эмуляторах, релизятся вслепую на 70% мирового Android-рынка. Минимум 6 реальных OEM в QA-лабе + cloud-farm для долгого хвоста — это базовая гигиена для мобильной игры в 2026.