Marshmallow в 2026: что важно знать разработчику
Коротко: Android 6.0 (API 23) ввёл runtime-разрешения, Doze/App Standby, базовый Fingerprint API и adoptable storage — эти механики всё ещё влияют на поведение старых устройств, но в 2026 году поддержка Android 6 экономически и с точки зрения безопасности чаще всего не оправдана: доля устройств мала, Google Play требует современный targetSdk, а системные патчи давно не выпускаются. Ниже — что именно изменилось, какие последствия это даёт сейчас и практический чеклист действий.
Оглавление автоматически сгенерировано далее.
Ключевые изменения, введённые в Android 6.0 (API 23)
- Runtime permissions: опасные разрешения нужно проверять и запрашивать в рантайме (checkSelfPermission / requestPermissions). Продумайте UX с rationale и обработкой «никогда не спрашивать».
- Doze и App Standby: агрессивные режимы энергосбережения ограничивают фоновые сети, sync и отложенные задачи — тестируйте фоновые сценарии.
- Fingerprint API: базовая поддержка отпечатков (FingerprintManager), но для современных реализаций используют androidx.biometric.
- Adoptable storage: SD-карты могут становиться внутренним зашифрованным хранилищем — нельзя полагаться на абсолютные пути.
- Устаревание Apache HTTP client: переходите на HttpURLConnection/okhttp/современный TLS.
- Подпись APK: устройства до Android 7.0 требуют v1-подпись; если подпишете только v2/v3, установка на Marshmallow не пройдет.
- 64‑битное требование Google Play: если у вас native .so — нужно снабдить 64‑битные ABI.
Ограничения и реальные последствия для приложений в 2026
- Публикация в Google Play: новые требования targetSdk делают таргет API 23 непригодным для обновлений — обновляйте targetSdkVersion под требования Play.
- Низкая доля пользователей: большинство проектов видят менее 1–3% устройств на API 23 — поддержка часто не окупается.
- Безопасность: устройства на Marshmallow, как правило, не получают актуальных системных патчей — риск компрометации данных выше.
- Биометрия: нативный FingerprintManager работает, но лучше использовать androidx.biometric для единообразия и обратной совместимости.
- Установка и совместимость: если хотите сохранить возможность установки на Marshmallow — собирайте APK/App Bundle с совместной v1+v2 подписью и учитывайте отсутствие некоторых новых signature schemes.
- Фоновые задачи и уведомления: Doze может задерживать sync/оповещения; используйте WorkManager/Firebase с учетом приоритетов и тестируйте в Doze-режиме.
Поддержка Android 6 не устраняет платформенные уязвимости — не храните на таких устройствах чувствительные ключи без дополнительной защиты (шифрование на стороне сервера, ограничение кэша).
Практические рекомендации: чеклист действий
- Оцените охват: посмотрите долю API 23 в вашей аудитории. Если <1–2% — повышение minSdk оправдано.
- Обновите targetSdkVersion в соответствии с требованиями Google Play — иначе обновления могут не приниматься.
- Поддержка Marshmallow, если нужна:
- Собирайте конфликтно: подпись v1+v2, добавьте 64‑битные ABI при наличии native-кода.
- Используйте androidx.biometric для биометрии; реализуйте корректный flow runtime-permissions с отображением rationale и маршрутом в настройки для «никогда не спрашивать».
- Перейдите на WorkManager/JobScheduler и протестируйте сценарии в Doze/App Standby; проверьте push-поведение при экономии энергии.
- Устраняйтe использование абсолютных путей — опирайтесь на Context API и Storage Access Framework.
- Замените Apache HTTP client на okhttp/HttpURLConnection, актуализируйте TLS и цепочки сертификатов.
- Документируйте решение: зафиксируйте cut-off версию в релиз-нотах и внутренней политике поддержки.
Если поддержка Marshmallow нужна только для отладки, можно покрыть критичные сценарии тестовой матрицей (runtime permissions, biometrics, Doze) без полного набора тестов на каждом устройстве.
Частые ошибки
- Полагаться на отсутствие Doze: фоновые задачи неожиданно блокируются.
- Не включать v1-подпись при необходимости и терять установку на старых устройствах.
- Хранить абсолютные пути к файлам вместо использования API контекста — проблемы при adoptable storage.
- Игнорировать «никогда не спрашивать» для разрешений — плохой UX и необработанные состояния.
FAQ
-
Нужно ли поддерживать Android 6 в 2026?
Если аудитория на API 23 составляет значимую долю (обычно >2–3%) и критична для бизнеса — да. В противном случае лучше поднять minSdk и сфокусироваться на безопасности и современных API. -
Как лучше реализовать биометрию для старых устройств?
Используйте androidx.biometric — он унифицирует BiometricPrompt и работает вплоть до API 23, обеспечивая fallback. -
Что обязательно при сборке для совместимости с Marshmallow?
Добавьте v1-подпись вместе с v2/v3 при необходимости, включите 64‑битные ABIs для native‑библиотек и протестируйте поведение runtime permissions. -
Как тестировать поведение в Doze?
Используйте эмулятор и adb-команды для перехода в Doze, симулируйте background-restrictions и проверяйте задержки sync/уведомлений.
Заключение: фундаментальные механики, введённые в Marshmallow, всё ещё актуальны по смыслу, но в 2026 году поддержка Android 6 должна быть осознанным выбором, основанным на аналитике пользователей и оценке рисков. При решении поддерживать — следуйте чеклисту выше и используйте AndroidX для унификации поведения.