Выбор 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 определяет, кто сможет установить приложение. Практический алгоритм:
- Оцените свою аудиторию по аналитике (охват по локалям/диапазонам устройств).
- Если не менее 95% вашей аудитории на Android ≥9 — устанавливайте minSdk = 28. Это убирает множество багов и позволяет использовать Scoped Storage, Material You и современные Jetpack‑функции.
- Если значительная доля пользователей в регионах с бюджетными телефонами (до 12% в некоторых рынках) — рассмотрите minSdk = 26, но лимитируйте фичи и создайте fallback‑логики.
- Ниже 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.