Оптимизация платформ Android SDK: что ставить и как управлять

Короткий ответ: держите в SDK только 2–3 платформы — текущую (API 35), предыдущую (API 34) и минимальную, которую вы поддерживаете (рекомендуемо не ниже API 24). Управляйте установками через SDK Manager или sdkmanager CLI, удаляйте ненужные build-tools, NDK и эмуляторы — это экономит гигабайты и ускоряет сборки.

Какие версии платформ ставить и почему

  • API 35 — основная: ставьте для новых проектов и разработки фич (Material You, AI-APIs, складные экраны).
  • API 34 — обязательна для релиза в Google Play (targetSdk с августа 2025); держите для совместимости.
  • minSdk — устанавливайте исходя из поддержки пользователей, но не ниже API 24 (Android 7.0) из соображений безопасности и облегчающей поддержки библиотек.

Оптимальная политика: текущая + предпоследняя + minSdk. Это даёт покрытие 95%+ устройств и экономит 5–10 ГБ.

Размеры платформ и когда ставить

APIAndroidPlatform-only (≈)Когда нужен
35Android 16~1.5 ГБРазработка и релиз новых фич
34Android 15~1.4 ГБTarget для Google Play
33Android 13~1.3 ГБТестирование
24Android 7~900 МБТолько если поддерживаете старые устройства

Установка и удаление через SDK Manager (GUI и CLI)

Через Android Studio:

  1. Tools → SDK Manager → SDK Platforms: отметьте нужные API → Show Package Details → выбирайте только "Android SDK Platform" (уберите дополнительные системные образы, если не нужны).
  2. SDK Tools: устанавливайте только нужные Build-Tools (например 35.0.1), Android Emulator и Hypervisor для ускорения. Снимите галочки с CMake/NDK если нет native-кода.
  3. Примените изменения — загрузит только выбранные пакеты.

Через CLI (быстро и воспроизводимо):

  • Установка: sdkmanager "platforms;android-35" "platforms;android-34" "build-tools;35.0.1"
  • Удаление: sdkmanager --uninstall "platforms;android-30" "system-images;android-28;default;x86_64"

Отключите автообновления в Settings → Appearance & Behavior → System Settings; проверяйте вручную 1 раз в квартал.

Настройки проекта и AVD

В build.gradle явно задавайте версии, чтобы сборки не использовали неожиданные инструменты:

android {
    compileSdk 35
    targetSdk 35 // или 34 для совместимости
    minSdk 24
    buildToolsVersion "35.0.1"
}

AVD: создавайте эмуляторы только для API 35 (hardware-accelerated). Удаляйте старые AVD через AVD Manager — образы и эмуляторы занимают много места.

Не устанавливайте NDK/CMake по умолчанию. Они добавляют +1–3 ГБ; ставьте только под конкретный native-модуль.

Оптимизация и чистка SDK

  • Перед удалением проверьте, что проекты не ссылаются на удалённые версии (Gradle cache и wrapper обновлены).
  • Очистка кэша сборки: ./gradlew clean или flutter clean.
  • Автоматизируйте очистку sdkmanager --uninstall для CI/машин разработчиков.
  • Для тестирования старых версий используйте облачные лаборатории (Firebase Test Lab, BrowserStack), а не локальные образы.

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

  • Установка всех системных образов "на всякий случай" — приводит к десяткам ГБ.
  • Отключение явного buildToolsVersion — Gradle может скачать несовместимые версии.
  • Удаление NDK без проверки build.gradle в модулях — ломает сборку native-модулей.
  • Доверие автообновлениям на рабочей машине разработчика — неожиданные изменения в CI.

FAQ

  • Нужно ли держать system-images для x86 и x86_64?
    Держите только те, которые вы реально запускаете. Для большинства разработчиков достаточно одного hardware-accelerated образа (API 35).

  • Какой минимальный API безопасно использовать в 2026?
    Рекомендуется minSdk 24; ниже — значительно сниженная доля устройств и возможные уязвимости в старых библиотеках.

  • Если проект требует native, какие версии NDK ставить?
    Устанавливайте только одну версию, совместимую с вашим кодом (например ndk;26.x). Укажите exact version в gradle.properties или в module-level build.gradle.

  • Как убедиться, что SDK не раздувается на CI?
    Собирайте минимальный набор пакетов в образе CI: platforms;android-35, build-tools;35.0.1 и нужные системные образы только при интеграционных тестах.

С этими правилами ваш локальный SDK в большинстве случаев займёт <5 ГБ, сборки будут быстрее, а поддержка — проще и безопаснее.