Android SDK (Software Development Kit) — это набор пакетов от Google, из которых собирают и отлаживают приложения под Android: библиотеки нужного уровня API, инструменты сборки, утилита adb для связи с устройством и эмулятор. Это не одна программа и не редактор кода: SDK — папка на диске с независимыми пакетами, каждый со своей версией. Пишете код вы в IDE (обычно Android Studio), а SDK дает ей все, чтобы превратить код в APK и запустить его.
Содержание
- Android SDK, Android Studio, JDK, NDK: что есть что
- Из чего состоит Android SDK
- Способ 1: установка через Android Studio
- Способ 2: установка через sdkmanager (без Android Studio)
- Настройка ANDROID_HOME и PATH
- Эмулятор: создание и запуск
- Подключение телефона и проверка adb
- Если не получилось: симптом -> причина -> что сделать
- Выводы
- Где применяется / связь с практикой
- FAQ
Ниже — из чего состоит 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, платформу, инструменты сборки и эмулятор.
- Скачайте Android Studio с официального сайта developer.android.com и установите.
- При первом запуске выберите тип установки Standard — мастер покажет папку SDK и список пакетов.
- Примите лицензии и дождитесь загрузки (несколько гигабайт, в основном образ эмулятора).
- Позже пакеты добавляются в 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запускались из любой папки, добавьте в PATHplatform-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
Отлаживать на реальном устройстве часто быстрее, чем в эмуляторе:
- На телефоне откройте Настройки -> О телефоне и семь раз нажмите на «Номер сборки» — появится меню «Для разработчиков».
- В этом меню включите «Отладка по USB».
- Подключите кабель (он должен передавать данные, а не только заряжать) и выполните
adb devices. - На экране телефона появится запрос с отпечатком 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.



