Краткий разбор ключевых компонентов Android SDK

Коротко: com.android.sdk — корневые API и ресурсы SDK (платформенные библиотеки и инструменты), com.android.tools.build — Gradle‑плагин (Android Gradle Plugin, AGP), отвечающий за компиляцию и упаковку, com.android.support — устаревшая Support Library, заменённая на AndroidX. Ниже — что они делают и как с ними работать на практике.

Что такое com.android.sdk и роль Android SDK

com.android.sdk условно обозначает платформенные компоненты Android SDK: набор API, сборок платформы (platforms/android-), инструменты командной строки и системные ресурсы. Практическое значение:

  • compileSdk в build.gradle указывает, к какой версии платформы привязана компиляция (например, 34).
  • SDK содержит платформенные JAR/AAR, которыми пользуются плагин и компилятор для проверки API и разрешения ссылок.
  • В CI ставьте нужные platform‑пакеты через sdkmanager (или в Android Studio укажите нужную версию SDK).

Что делать:

  • Всегда ставьте compileSdk равным рекомендованной версии для вашей цели (новые функции и проверки).
  • Отдельно обновляйте Build Tools и платформы, чтобы AGP корректно собирал проект.

com.android.tools.build — Android Gradle Plugin (AGP)

com.android.tools.build — это артефакт AGP, подключаемый в проекте как classpath 'com.android.tools.build:gradle:X.Y.Z' и/или через плагин id 'com.android.application'. Его функции:

  • Компиляция Java/Kotlin → DEX/ART (вместе с R8/ProGuard для минификации).
  • Обработка и упаковка ресурсов (aapt2), генерация R-класса, слияние манифестов.
  • Создание APK/AAB, управление вариантами сборки (buildTypes, productFlavors). Практические рекомендации:
  • Синхронизируйте версии AGP и Gradle (проверяйте матрицу совместимости в документации Android).
  • Используйте Gradle Wrapper в репозитории для стабильных сборок в CI.
  • Включайте кэширование и конфигурационный кэш по мере совместимости AGP и плагинов для ускорения сборки.

Если сборка медленная, проверьте версию AGP, включите конфигурационный кэш Gradle и используйте параллельную сборку; для минификации включите R8 (по умолчанию в новых AGP).

com.android.support — что это и почему переходить на AndroidX

com.android.support — набор Support Library (AppCompat, RecyclerView, CardView и др.), который обеспечивал обратную совместимость и виджеты до появления AndroidX. С 2018 Google переместил библиотеки в пространство имён androidx (AndroidX), где артефакты имеют стабильную схему версий. Почему важно мигрировать:

  • com.android.support больше не обновляется и вызывает конфликты с современными зависимостями.
  • Публикация и совместимость с новыми плагинами и библиотеками требует AndroidX. Как мигрировать:
  • В Android Studio: Refactor → Migrate to AndroidX или заменить зависимости вручную (например, androidx.appcompat:appcompat).
  • Обновите импорты в коде и проверьте сторонние зависимости на совместимость.

Не используйте com.android.support в новых проектах — это часто приводит к конфликтам версий и проблемам при сборке/публикации.

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

  • Несовместимость AGP и Gradle: проект не синхронизируется — обновите Gradle Wrapper под требуемую версию AGP.
  • Failed to resolve com.android.support: отсутствуют Google‑репозитории в repositories — убедитесь, что добавлен mavenCentral() и google().
  • Компиляция против старого compileSdk: возникают ошибки ссылок на новые API — повысьте compileSdk, не меняя targetSdk без тестов.
  • Конфликты зависимостей между support и AndroidX: используйте Jetifier или полностью мигрируйте на AndroidX.

FAQ

  • Нужно ли обновлять AGP при каждом обновлении Android Studio? Обычно да: новые версии Studio ожидают совместимые AGP/Gradle; обновляйте по мере необходимости и тестируйте CI.
  • Что важнее — compileSdk или targetSdk? compileSdk определяет доступные API при компиляции; targetSdk влияет на поведение приложения на рантайме. Для новых функциональностей поднимайте compileSdk.
  • Можно ли продолжать использовать com.android.support в старом проекте? Технически — да, но это увеличивает риск конфликтов и мешает использовать современные библиотеки и плагины. Планируйте миграцию на AndroidX.