← Назад к вопросам

Почему используешь версию Android 9.0 в проектах?

1.2 Junior🔥 131 комментариев
#Опыт и софт-скиллы

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Почему целевая версия Android 9.0 (API 28) часто является оптимальным выбором

Выбор Target SDK (целевой версии Android) — это стратегическое решение, балансирующее между доступностью аудитории, использованием современных API и сложностью разработки. Android 9.0 (Pie, API 28) уже не самая свежая, но во многих проектах она остается "золотой серединой". Вот ключевые причины.

1. Оптимальный баланс покрытия аудитории и современных возможностей

Согласно официальной Dashboard статистике Google (данные постоянно обновляются, но тенденция устойчива), совокупная доля устройств на Android 9.0 и выше стабильно превышает 85-90% мирового рынка. Устанавливая targetSdkVersion = 28, мы охватываем подавляющее большинство активных пользователей, при этом не жертвуя критически важными современными функциями безопасности и UX.

  • minSdkVersion может быть ниже (например, 21 или 23), чтобы включить старые устройства.
  • targetSdkVersion = 28 указывает, что приложение протестировано и адаптировано под поведение и разрешения этой версии.
  • compileSdkVersion при этом может быть актуальным (например, 34), чтобы использовать новые инструменты компиляции и библиотеки.
// Пример конфигурации в build.gradle (модуль app)
android {
    compileSdk 34

    defaultConfig {
        minSdk 21
        targetSdk 28 // Фокус на адаптации под Pie
        ...
    }
}

2. Критически важные улучшения приватности и безопасности

Android 9.0 внесла фундаментальные изменения, которые стали новой нормой:

  • Ограничение доступа к датчикам в фоне: Приложения в фоне не могут получать данные с акселерометра, гироскопа без постоянного Foreground Service. Это защищает пользователя.
  • Улучшенные разрешения для телефонии: Требуется READ_CALL_LOG для доступа к журналу вызовов, что предотвращает скрытый сбор данных.
  • TLS по умолчанию: Сетевая безопасность по умолчанию блокирует незашифрованные соединения, подталкивая к использованию HTTPS.

Адаптация под эти правила (targetSdkVersion >= 28) означает, что приложение уже соответствует строгим стандартам безопасности, что критично для публикации в Google Play и доверия пользователей.

3. Значительные улучшения UX и производительности, не требующие "революционной" переработки

Android Pie принесла функции, которые можно плавно интегрировать:

  • Вырезы (Display Cutout) и улучшенная поддержка нестандартных экранов: Единый API для работы с "челками".
  • ИИ-прогнозы в приложении (App Actions) и Slices: Основы для умных рекомендаций (хотя некоторые API позднее устарели).
  • HDR VP9 Video, HEIF поддержка: Улучшенная работа с мультимедиа.
  • Более эффективное управление питанием (App Standby Buckets): Система сама классифицирует приложения по частоте использования, оптимизируя их работу в фоне.

Эти улучшения дают заметный прирост в качестве приложения, но их внедрение менее радикально, чем, например, миграция на Scoped Storage (Android 10/Q, API 29) или ограничения фонового местоположения (Android 11/R, API 30).

4. Снижение стоимости разработки и тестирования

Чем выше targetSdkVersion, тем больше behavior changes (изменений в поведении системы) нужно учитывать и тестировать:

  • Android 10 (API 29): Обязательный Scoped Storage (новый модели доступа к файлам), обязательный foreground service тип.
  • Android 11 (API 30): Разовые разрешения, автоматический сброс неиспользуемых разрешений, ужесточение фонового доступа к местоположению.
  • Android 12+ (API 31+): Новые разрешения на точное местоположение, экспорт компонентов, безопасные нажатия на ссылки, новый UI с Material You.

Выбирая API 28, мы избегаем необходимости немедленной и сложной адаптации под эти масштабные изменения, особенно если функционал приложения не требует новейших функций. Это экономит сотни человеко-часов на разработку, тестирование и отладку.

5. Стабильность и зрелость платформы

Android 9.0 — это завершенная, хорошо документированная и отлаженная платформа. Большинство библиотек и фреймворков (Retrofit, Glide, Room, Jetpack Components) имеют полную и стабильную поддержку для этой версии. Это минимизирует риски несовместимости и странных багов, которые могут возникать на самых свежих API в первые месяцы после их выпуска.

Вывод: Когда API 28 — разумный выбор, а когда нет

Использовать Android 9.0 в качестве целевой версии стоит, если:

  • Приложение массовое, и ключевой KPI — максимальный охват при адекватном качестве.
  • Функционал не завязан на Scoped Storage, разовые разрешения или другие фичи Android 10+.
  • Команда ограничена в ресурсах, и важна быстрая/экономичная разработка.
  • Проект "легаси", и поэтапная миграция с API 28 на более новые выглядит безопаснее, чем прыжок сразу на актуальную версию.

Стоит рассмотреть более высокую targetSdkVersion (например, 33/34), если:

  • Приложение новое и рассчитано на продвинутую аудиторию с обновленными устройствами.
  • Требуются критичные фичи последних версий (например, полноценная работа с медиафайлами через Scoped Storage).
  • Требования Google Play или корпоративного заказчика прямо предписывают использовать более свежую версию (Play постепенно ужесточает требования).
  • Долгосрочная поддержка проекта важнее, чем краткосрочная экономия, и вы хотите избежать накопления "технического долга".

Таким образом, Android 9.0 (API 28) — это не про "старое", а про взвешенный прагматизм. Это стабильная база, обеспечивающая широкую доступность, современный уровень безопасности и приемлемую стоимость владения, что для многих бизнес-проектов является оптимальным решением.

Почему используешь версию Android 9.0 в проектах? | PrepBro