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

Что такое Compile SDK?

1.3 Junior🔥 231 комментариев
#Android компоненты

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

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

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

Что такое Compile SDK?

Compile SDK (или Compile SDK Version) — это версия Android SDK, используемая компилятором Gradle для преобразования исходного кода вашего приложения (Java/Kotlin) и ресурсов в промежуточный формат во время процесса сборки. Этот параметр определяет, какие API, библиотеки и системные классы будут доступны вашему коду во время компиляции.

Ключевые характеристики и роль Compile SDK

  • Не влияет на поведение приложения на устройстве: Compile SDK используется только во время сборки. Реальное выполнение приложения зависит от Target SDK и Min SDK, а также от версии Android на устройстве пользователя.
  • Определяет доступность новых API: Если вы хотите использовать новые функции Android, добавленные в определённой версии API (например, BiometricPrompt в API 29), вы должны установить Compile SDK на эту версию или выше. Это позволяет компилятору "видеть" новые классы и методы.
  • Отдельный параметр в конфигурации Gradle: В файле build.gradle (module-level) Compile SDK задаётся отдельно от других версий:
android {
    compileSdkVersion 34 // Используем Android 14 (API 34) для компиляции
    defaultConfig {
        minSdkVersion 24    // Минимальная версия для запуска
        targetSdkVersion 33 // Целевая версия для поведения
    }
}

Почему важно регулярно обновлять Compile SDK?

  1. Доступ к новым функциям: Обновление позволяет использовать современные API для улучшения UX, безопасности и производительности.
  2. Поддержка новых инструментов компиляции: Новые версии SDK часто включают улучшения в компилятор, оптимизации и новые lint-правила.
  3. Совместимость с библиотеками: Многие сторонние библиотеки требуют определённой версии Compile SDK для своей работы.
  4. Подготовка к обновлению Target SDK: Часто сначала повышают Compile SDK, чтобы проверить код с новыми API, затем — Target SDK.

Разница между Compile SDK, Target SDK и Min SDK

  • Compile SDK: "Что я могу использовать в коде?" — Версия для компилятора.
  • Target SDK: "Как приложение должно работать?" — Версия, на которую оптимизировано поведение (новые ограничения безопасности, изменения в разрешениях).
  • Min SDK: "На каких устройствах можно запустить?" — Минимальная версия Android для установки.

Пример использования нового API

Допустим, в Android 13 (API 33) добавили новый метод NotificationManager.canNotify(). Чтобы использовать его в коде:

// Код требует compileSdkVersion >= 33
fun checkNotificationPermission(context: Context) {
    val notificationManager = context.getSystemService(NotificationManager::class.java)
    if (notificationManager.canNotify()) { // Новый метод в API 33
        // Отправляем уведомление
    }
}

Если compileSdkVersion ниже 33, компилятор выдаст ошибку, так как метод canNotify() не будет найден в системных классах SDK.

Рекомендации по выбору версии

  • Используйте последнюю стабильную версию: Это обеспечивает доступ ко всем новым функциям и улучшениям инструментов.
  • Соответствие Target SDK: Compile SDK должен быть >= Target SDK. Обычно они равны или Compile SDK немного выше.
  • Проверка обратной совместимости: Новые API, доступные благодаря высокому Compile SDK, должны использоваться с проверкой на версию (Build.VERSION.SDK_INT) для поддержки Min SDK.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    // Используем API 33+ методы только на соответствующих устройствах
    useNewApi()
} else {
    useLegacyApi() // Альтернатива для старых версий
}

Compile SDK — это фундаментальный параметр сборки, который открывает доступ к современным возможностям Android, но требует понимания его взаимодействия с другими версионными параметрами для создания стабильных и совместимых приложений.