Android SDK: что это, как установить и настроить

Android SDK: что это, как установить и настроить Полезное

Android SDK (Software Development Kit) — это набор пакетов от Google, из которых собирают и отлаживают приложения под Android: библиотеки нужного уровня API, инструменты сборки, утилита adb для связи с устройством и эмулятор. Это не одна программа и не редактор кода: SDK — папка на диске с независимыми пакетами, каждый со своей версией. Пишете код вы в IDE (обычно Android Studio), а SDK дает ей все, чтобы превратить код в APK и запустить его.

Ниже — из чего состоит SDK, два способа установки (через Android Studio и через командную строку), настройка ANDROID_HOME и PATH, создание эмулятора, подключение телефона и разбор типовых ошибок.

Android SDK, Android Studio, JDK, NDK: что есть что

Эти названия путают чаще всего, поэтому сначала короткий словарь.

Термин Что это Нужен ли для первого приложения
Android SDK Пакеты платформы и утилиты: platforms, build-tools, platform-tools, emulator Да
Android Studio IDE на базе IntelliJ IDEA; умеет скачивать и обновлять SDK Не обязательно, но так проще всего
JDK Java Development Kit — нужен Gradle и утилитам SDK для запуска Да (в Android Studio уже встроен)
NDK Native Development Kit — сборка кода на C/C++ Нет, только для нативных библиотек
Gradle и AGP Система сборки и ее Android-плагин, который вызывает инструменты SDK Да, подключается в проекте

Главное различие: Android Studio — это редактор, а SDK — то, чем редактор собирает и запускает приложение. SDK можно поставить без Android Studio (для CI-сервера или другой IDE), а вот Android Studio без SDK приложение не соберет.

Из чего состоит Android SDK

Каждый пакет лежит в своей подпапке SDK. Ставить все подряд не нужно: для старта хватает первых четырех строк таблицы и одного образа эмулятора.

Пакет (папка) Что внутри Когда нужен
platform-tools adb, fastboot Всегда: установка APK, логи, отладка на устройстве
platforms/android-NN android.jar — API конкретной версии Android Всегда: под этот уровень API компилируется проект (compileSdk)
build-tools/NN.x.x aapt2, d8, zipalign, apksigner Всегда: Gradle упаковывает и подписывает ими приложение
cmdline-tools/latest sdkmanager, avdmanager, lint Для работы без Android Studio и в CI
emulator Эмулятор Android Если тестируете без телефона
system-images/... Образ Android для эмулятора (x86_64 или arm64-v8a) Вместе с эмулятором
ndk/..., cmake/... Нативная сборка Только для C/C++

Номер NN в platforms — это уровень API, а не номер версии Android. Например, Android 16 — это API 36 (пакет platforms;android-36), а Android 17, вышедший в июне 2026 года, — API 37. С Android 17 в именах пакетов появилась дополнительная цифра: платформа называется platforms;android-37.0, а не android-37, поэтому точное имя всегда берите из sdkmanager --list. В проекте с уровнем API связаны три разных параметра, и их тоже легко перепутать:

  • compileSdk — с каким android.jar компилируется код (какие методы видит компилятор);
  • targetSdk — под поведение какой версии Android приложение заявлено; Google Play регулярно поднимает минимальное требование к нему;
  • minSdk — самая старая версия Android, на которую приложение вообще установится.

Способ 1: установка через Android Studio

Для новичка это основной путь: мастер первого запуска сам скачает SDK, платформу, инструменты сборки и эмулятор.

  1. Скачайте Android Studio с официального сайта developer.android.com и установите.
  2. При первом запуске выберите тип установки Standard — мастер покажет папку SDK и список пакетов.
  3. Примите лицензии и дождитесь загрузки (несколько гигабайт, в основном образ эмулятора).
  4. Позже пакеты добавляются в Settings -> Languages & Frameworks -> Android SDK (на macOS — Android Studio -> Settings). Вкладка SDK Platforms — уровни API, вкладка SDK Tools — build-tools, platform-tools, emulator, cmdline-tools.

По умолчанию SDK ставится сюда:

ОС Папка SDK по умолчанию
Windows %LOCALAPPDATA%\Android\Sdk
macOS ~/Library/Android/sdk
Linux ~/Android/Sdk

Запомните этот путь: он понадобится для ANDROID_HOME. Точный путь всегда показан в верхней строке окна Android SDK в настройках Studio. Путь без пробелов и кириллицы избавит от части проблем со сборкой на Windows.

Способ 2: установка через sdkmanager (без Android Studio)

Этот вариант нужен для CI, сервера сборки или работы в другой IDE. На сайте developer.android.com в разделе загрузки Android Studio есть отдельный архив Command line tools only.

Главная ловушка — структура папок. sdkmanager вычисляет корень SDK по своему расположению, поэтому содержимое архива должно лежать в <SDK>/cmdline-tools/latest/, а не просто в <SDK>/cmdline-tools/. Если положить иначе, sdkmanager не поймет, где SDK, и потребует флаг --sdk_root.

Для запуска утилит нужен JDK 17 или новее. Пример для macOS и Linux (путь $HOME/Android/Sdk — пример, подставьте свой):

export ANDROID_HOME="$HOME/Android/Sdk"
mkdir -p "$ANDROID_HOME/cmdline-tools"
# распакуйте архив commandlinetools-*.zip в $ANDROID_HOME/cmdline-tools
# и переименуйте получившуюся папку cmdline-tools в latest
"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --list

--list покажет установленные и доступные пакеты. Дальше ставим минимальный набор и принимаем лицензии:

sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" "emulator"
sdkmanager --licenses

Имена пакетов пишутся в кавычках, потому что точка с запятой в shell разделяет команды. Номера версий берите из вывода --list: в примере стоит Android 16 (API 36), а на сентябрь 2026 года там уже есть platforms;android-37.0 и build-tools;37.0.0 для Android 17. sdkmanager --licenses покажет тексты лицензий и попросит подтверждения для каждой — это юридическое согласие, а не формальность. Обновить все установленные пакеты можно командой sdkmanager --update.

Настройка ANDROID_HOME и PATH

Android Studio работает с SDK и без переменных окружения. Но как только вы открываете терминал и пишете adb, sdkmanager или запускаете сборку Gradle из консоли, системе нужно знать две вещи: где лежит SDK и где искать его утилиты.

  • ANDROID_HOME — путь к корню SDK. Его читают Gradle и другие инструменты. Старое имя ANDROID_SDK_ROOT считается устаревшим: если заданы обе переменные, они должны указывать на одну папку.
  • PATH — список папок с командами. Чтобы adb и sdkmanager запускались из любой папки, добавьте в PATH platform-tools, cmdline-tools/latest/bin и emulator.

В проекте Android Studio путь к SDK также пишется в файл local.properties (строка sdk.dir=...). Этот файл локальный для вашей машины, в git его не коммитят.

macOS и Linux. Добавьте строки в конец ~/.zshrc (zsh — оболочка по умолчанию в macOS) или ~/.bashrc, путь — из таблицы выше:

export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator"

Откройте новое окно терминала или выполните source ~/.zshrc. Строку PATH пишем через $PATH:..., чтобы дописать папки к существующему списку, а не заменить его.

Windows. Надежнее всего через интерфейс: Параметры системы -> Дополнительные параметры -> Переменные среды. В блоке переменных пользователя создайте ANDROID_HOME со значением вроде C:\Users\<имя>\AppData\Local\Android\Sdk, затем в Path добавьте три отдельные строки: %ANDROID_HOME%\platform-tools, %ANDROID_HOME%\cmdline-tools\latest\bin, %ANDROID_HOME%\emulator. Если настраиваете из PowerShell, сначала сохраните текущий Path в файл, чтобы было что вернуть при ошибке:

$old = [Environment]::GetEnvironmentVariable("Path", "User")
$old | Out-File "$HOME\path-backup.txt"
$sdk = "$env:LOCALAPPDATA\Android\Sdk"
[Environment]::SetEnvironmentVariable("ANDROID_HOME", $sdk, "User")
$add = @("$sdk\platform-tools", "$sdk\cmdline-tools\latest\bin", "$sdk\emulator")
$parts = @($old -split ";" | Where-Object { $_ -ne "" })
$new = ($parts + ($add | Where-Object { $parts -notcontains $_ })) -join ";"
[Environment]::SetEnvironmentVariable("Path", $new, "User")

Скрипт меняет только пользовательский Path (не системный), дописывает папки SDK в конец и не дублирует уже добавленные при повторном запуске. Откат — вернуть сохраненное значение: [Environment]::SetEnvironmentVariable("Path", (Get-Content "$HOME\path-backup.txt" -Raw).Trim(), "User").

Не используйте setx PATH "%PATH%;...": команда склеивает системный и пользовательский Path в один и обрезает длинное значение, после чего часть программ перестает находиться. Изменения переменных видны только в новых окнах терминала.

Проверка одной командой

Скрипт ниже проверяет три вещи: задана ли ANDROID_HOME, есть ли в SDK основные пакеты и видны ли утилиты через PATH, причем именно из этого SDK. Если adb находится, но лежит в другой папке (второй SDK, пакет из менеджера пакетов ОС), скрипт пометит его как [чужой]. Запускайте его через bash на macOS и Linux (на Windows — в Git Bash или WSL); под zsh он тоже отрабатывает. Скрипт проверяет только папки и пути, но не то, что утилиты запускаются и подходят по версии.

#!/usr/bin/env bash
# Проверка Android SDK: переменная, пакеты, инструменты в PATH
sdk="${ANDROID_HOME:-}"
sdk="${sdk%/}"
if [ -z "$sdk" ]; then
  echo "ANDROID_HOME не задан"
  exit 1
fi
if [ ! -d "$sdk" ]; then
  echo "ANDROID_HOME указывает на несуществующую папку"
  exit 1
fi
echo "ANDROID_HOME задан, папка найдена"
rc=0
for pkg in platform-tools build-tools platforms emulator cmdline-tools/latest; do
  if [ -d "$sdk/$pkg" ]; then
    echo "  [ok]  $pkg"
  else
    echo "  [нет] $pkg"
    rc=1
  fi
done
for tool in adb sdkmanager avdmanager emulator; do
  found="$(command -v "$tool" 2>/dev/null)"
  if [ -z "$found" ]; then
    echo "  [нет] $tool в PATH"
    rc=1
  elif [ "${found#"$sdk"/}" = "$found" ]; then
    echo "  [чужой] $tool: $found"
    rc=1
  else
    echo "  [ok]  $tool в PATH"
  fi
done
exit $rc

Сохраните как check-android-sdk.sh и запустите bash check-android-sdk.sh. Вот вывод для самой частой ситуации: SDK поставлен через Android Studio, ANDROID_HOME задана, а PATH забыли дополнить.

ANDROID_HOME задан, папка найдена
  [ok]  platform-tools
  [ok]  build-tools
  [ok]  platforms
  [ok]  emulator
  [ok]  cmdline-tools/latest
  [нет] adb в PATH
  [нет] sdkmanager в PATH
  [нет] avdmanager в PATH
  [нет] emulator в PATH

Пакеты на месте, но терминал их не видит — значит, нужно добавить строку с PATH и открыть новое окно. Когда все настроено, во всех строках будет [ok], а код возврата — 0 (удобно для CI). Если нет строки cmdline-tools/latest, доустановите Android SDK Command-line Tools на вкладке SDK Tools: мастер Studio ставит их не всегда.

Эмулятор: создание и запуск

В Android Studio эмулятор создается в Device Manager: кнопка создания устройства -> выбор модели -> выбор образа системы -> Finish. Из командной строки то же самое делается двумя утилитами:

sdkmanager "system-images;android-36;google_apis;x86_64"
avdmanager create avd -n Pixel_API_36 -k "system-images;android-36;google_apis;x86_64" -d pixel_7
emulator -list-avds
emulator -avd Pixel_API_36

Архитектура образа должна совпадать с процессором компьютера: на Mac с Apple Silicon берите arm64-v8a вместо x86_64. Образ с google_apis содержит сервисы Google для отладки, образ google_apis_playstore — еще и Play Маркет. Список доступных моделей для -d покажет avdmanager list device.

Эмулятору нужна аппаратная виртуализация: на Linux — KVM, на macOS — встроенный Hypervisor.Framework, на Windows — Windows Hypervisor Platform (включается в компонентах Windows). Intel HAXM, который советуют старые инструкции, больше не развивается — не ставьте его.

Подключение телефона и проверка adb

Отлаживать на реальном устройстве часто быстрее, чем в эмуляторе:

  1. На телефоне откройте Настройки -> О телефоне и семь раз нажмите на «Номер сборки» — появится меню «Для разработчиков».
  2. В этом меню включите «Отладка по USB».
  3. Подключите кабель (он должен передавать данные, а не только заряжать) и выполните adb devices.
  4. На экране телефона появится запрос с отпечатком RSA-ключа компьютера — разрешите, только если это ваш компьютер.

Если все прошло успешно, в колонке состояния у устройства будет device. Состояние unauthorized значит, что запрос на телефоне не подтвержден. На Windows для Pixel нужен Google USB Driver (пакет SDK), для телефонов других брендов — драйвер производителя; на macOS и Linux драйверы обычно не нужны, но на Linux может понадобиться правило udev.

Отладка по USB дает компьютеру доступ к данным и установке приложений. Когда она не нужна, выключайте ее, а в том же меню есть пункт «Отозвать авторизации отладки по USB» — используйте его, если подключались к чужому компьютеру.

Если не получилось: симптом -> причина -> что сделать

Симптом Частая причина Что сделать
adb: command not found или «не является внутренней или внешней командой» platform-tools нет в PATH Дописать PATH, открыть новый терминал, проверить скриптом выше
sdkmanager не находит корень SDK Инструменты лежат не в cmdline-tools/latest Переложить папку или передать --sdk_root
sdkmanager падает сразу при запуске Нет JDK или он старше 17 Поставить JDK 17+ или указать JAVA_HOME на JDK из Android Studio (папка jbr)
Gradle: SDK location not found Нет local.properties и не задана ANDROID_HOME Открыть проект в Studio или задать ANDROID_HOME
Сборка требует платформу или build-tools, которых нет В build.gradle указан compileSdk, который не установлен Поставить нужную платформу через SDK Manager или sdkmanager
Эмулятор не стартует или сообщает про ускорение Выключена виртуализация в BIOS/UEFI или неверная архитектура образа Включить VT-x/AMD-V и гипервизор ОС, взять образ под свой процессор
adb devices пуст или unauthorized Кабель только для зарядки, нет драйвера, не подтвержден RSA-запрос Сменить кабель, поставить драйвер, подтвердить запрос, adb kill-server и повторить

Если на машине несколько SDK (например, один от Studio, второй распакован вручную), проверьте, что ANDROID_HOME, sdk.dir в local.properties и PATH указывают на одну и ту же папку: иначе вы обновляете один SDK, а сборка использует другой. Подробнее про саму IDE и ее интерфейс — в статье «Android Studio: что собой представляет».

Выводы

  • Android SDK — это набор независимых пакетов (platforms, build-tools, platform-tools, emulator, cmdline-tools), а не IDE; Android Studio лишь удобно им управляет.
  • Новичку проще поставить SDK мастером Android Studio; для CI и сервера сборки — архив Command line tools, разложенный в cmdline-tools/latest.
  • Для работы из терминала нужны ANDROID_HOME и три папки в PATH; результат легко проверить скриптом до первой сборки.
  • Уровень API в platforms не равен номеру версии Android, а compileSdk, targetSdk и minSdk — три разных параметра.
  • Эмулятору нужны аппаратная виртуализация и образ под архитектуру процессора, телефону — включенная отладка по USB и подтвержденный RSA-запрос.

Где применяется / связь с практикой

Освойте тему на практике

Настроенный SDK — это только отправная точка: дальше начинается сама разработка на Kotlin, работа с экранами, данными и сетью, отладка через adb и Logcat. Если хочется пройти этот путь системно, с проектами и обратной связью от практикующих разработчиков, посмотрите курс «Android-разработчик. Базовый уровень». Попробовать формат можно бесплатно на открытых уроках Otus.

FAQ

Можно ли установить Android SDK без Android Studio?
Да. Скачайте архив Command line tools, положите его в <SDK>/cmdline-tools/latest и ставьте пакеты через sdkmanager; так обычно настраивают серверы сборки.

Сколько места занимает Android SDK?
Зависит от набора пакетов. Больше всего занимают образы эмулятора и NDK, поэтому неиспользуемые образы и старые версии build-tools стоит удалять через SDK Manager.

Нужно ли ставить все уровни API?
Нет. Достаточно платформы, указанной в compileSdk вашего проекта, и одного образа эмулятора для тестов; старые уровни API нужны, только если вы проверяете совместимость с конкретными версиями Android.

OTUS Журнал