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 не устраняет платформенные уязвимости — не храните на таких устройствах чувствительные ключи без дополнительной защиты (шифрование на стороне сервера, ограничение кэша).

Практические рекомендации: чеклист действий

  1. Оцените охват: посмотрите долю API 23 в вашей аудитории. Если <1–2% — повышение minSdk оправдано.
  2. Обновите targetSdkVersion в соответствии с требованиями Google Play — иначе обновления могут не приниматься.
  3. Поддержка 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 и цепочки сертификатов.
  4. Документируйте решение: зафиксируйте 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 для унификации поведения.