Выбор minSdk и targetSdk в 2026: кратко и по делу

Резюме: в 2026 году для новых проектов ставьте minSdk = 28 (Android 9), targetSdk = 35 (Android 15); Play требует targetSdk ≥ 34, а compileSdk целесообразно держать на 36 при использовании новых API. Это обеспечивает ~95% охвата, минимизирует баги на старых платформах и открывает современные фичи.

Короткие рекомендации

  • Для большинства приложений: minSdk = 28, targetSdk = 35, compileSdk = 36.
  • Если нужна максимальная совместимость в развивающихся рынках — minSdk = 26, но готовьтесь к полифиллам и текущим багам на старом железе.
  • Для экспериментальных функций (AI, advanced haptics) целитесь в target/compile 36, но тщательно тестируйте на реальных устройствах.

Play Store с марта 2026 требует targetSdk ≥ 34 для обновлений — неподдерживаемый target приведёт к отклонению релизов.

minSdk: как выбрать и что учитывать

minSdk определяет, кто сможет установить приложение. Практический алгоритм:

  1. Оцените свою аудиторию по аналитике (охват по локалям/диапазонам устройств).
  2. Если не менее 95% вашей аудитории на Android ≥9 — устанавливайте minSdk = 28. Это убирает множество багов и позволяет использовать Scoped Storage, Material You и современные Jetpack‑функции.
  3. Если значительная доля пользователей в регионах с бюджетными телефонами (до 12% в некоторых рынках) — рассмотрите minSdk = 26, но лимитируйте фичи и создайте fallback‑логики.
  4. Ниже API 24 — почти всегда нецелесообразно: слабая поддержка библиотек и риск уязвимостей.

Практические шаги:

  • Используйте проверки if (Build.VERSION.SDK_INT >= ...) и альтернативные реализации/плейсхолдеры для новых фич.
  • Профилируйте APK/AAB и исключайте ненужные полифиллы для старых API.

targetSdk, compileSdk и совместимость

targetSdk определяет поведение системы по умолчанию (ограничения приватности, background‑ограничения, уведомления). Рекомендации:

  • targetSdk = 35 — безопасный выбор для релиза в 2026: даёт новые приватные политики и не слишком рискует нестабильностью.
  • compileSdk = 36 — позволяет компилировать с последними API и пользоваться новыми библиотеками, при этом target можно держать ниже для плавного перехода.
  • Если вы внедряете cutting‑edge фичи (AI API, haptics), поднимайте targetSdk до 36, но проводите тестирование на реальных моделях (Pixel, флагманы Samsung и популярных локальных брендов).

Тестирование и CI:

  • Эмулируйте набор API 28–36, но обязательно покрывайте реальные устройства через Firebase Test Lab или пул устройств QA.
  • Пропустите интеграционные тесты, которые эмулируют системные ограничения (background limits, permission changes).

Пример Gradle‑настроек: compileSdk = 36, targetSdk = 35, minSdk = 28. Включите Lint и автоматические check‑builds в CI; используйте Android Studio Meerkat для обнаружения compatibility warnings.

Частые ошибки

  • Ставить minSdk слишком низко без проверки реальной аудитории — ведёт к усложнению кода и росту багов.
  • Игнорировать требование Play к targetSdk ≥ 34 — релизы будут отклоняться.
  • Недостаточное тестирование на реальных устройствах: эмуляторы не ловят аппаратные баги (производительность, сенсоры, haptics).
  • Отключение фоллбеков для тяжелых фич на старых API (AR, ML) приводит к крашам и плохим отзывам.

FAQ

  • Нужно ли поднимать targetSdk каждый релиз?
    Рекомендуется ежегодно поднимать targetSdk и тестировать: это даёт доступ к новым политиками и API, а также предотвращает неожиданные ограничения в будущем.
  • Что важнее: compileSdk или targetSdk?
    compileSdk влияет на компиляцию и доступ к новым API во время сборки; targetSdk — на поведение на устройствах. Обычно compileSdk ≥ targetSdk.
  • Как измерить потери от поднятия minSdk до 28?
    Проверьте текущую аналитику установок по API‑уровню; если доля ниже API 28 < 3–5%, поднятие оправдано.

С таким подходом вы получите баланс охвата и современного поведения приложения, минимизируете краши и проблемы с публикацией в Play Store.