Пошаговое руководство по установке Android SDK, эмулятора и запуску собственного приложения на macOS (Apple Silicon). Подходит для Capacitor-приложений и любых Android-проектов.
Установка через Homebrew
1. Android Command Line Tools
brew install android-commandlinetoolsПосле установки SDK доступен по пути:
/opt/homebrew/share/android-commandlinetools/
2. Android Platform Tools (adb)
brew install android-platform-toolsПроверка:
adb --version3. Android Studio (опционально)
Если нужен GUI для управления SDK и AVD:
brew install android-studioМожно обойтись без Android Studio
Для сборки и запуска приложений достаточно command line tools. Android Studio нужна только если хочется визуальный менеджер эмуляторов или IDE для нативного кода.
Настройка ANDROID_HOME
Добавить в ~/.zshrc:
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"Применить:
source ~/.zshrcПроверить:
echo $ANDROID_HOME
# /opt/homebrew/share/android-commandlinetoolsУстановка SDK компонентов
Принять лицензии
yes | sdkmanager --licensesУстановить платформу, build-tools, system image, эмулятор
sdkmanager "platforms;android-34" "build-tools;34.0.0" "emulator" "system-images;android-34;google_apis;arm64-v8a"Версии
android-34— это Android 14 (UpsideDownCake). Для более новых версий замени34на нужную.arm64-v8a— для Apple Silicon (M1/M2/M3/M4). На Intel Mac используйx86_64.
Проверить что установлено:
sdkmanager --list_installedСоздание эмулятора (AVD)
Создать виртуальное устройство
avdmanager create avd \
--name pixel7 \
--package "system-images;android-34;google_apis;arm64-v8a" \
--device "pixel_7"--name— имя, которым будешь запускать эмулятор--device— модель устройства (список:avdmanager list device)
Список созданных AVD
avdmanager list avdУдалить AVD
avdmanager delete avd --name pixel7Запуск эмулятора
С графическим окном
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
"$ANDROID_HOME/emulator/emulator" -avd pixel7Без окна (headless, для CI)
"$ANDROID_HOME/emulator/emulator" -avd pixel7 -no-window -no-audioВ фоне
"$ANDROID_HOME/emulator/emulator" -avd pixel7 &Проверить что эмулятор запущен
adb devices
# List of devices attached
# emulator-5554 deviceСтатус "offline" или пустой список
Эмулятору нужно 10-30 секунд на загрузку Android. Подожди и повтори
adb devices. Если “offline” — подожди ещё.
Сборка и запуск Capacitor-приложения
Предусловия
В проекте должен быть настроен Capacitor:
npm install @capacitor/core @capacitor/cli @capacitor/androidДобавить Android-платформу
npx cap add androidСоздаст директорию android/ с Android-проектом.
Собрать web-assets и синхронизировать
npm run build # Vite/Webpack build
npx cap sync android # Копирует dist/ в android/app/src/main/assets/public/cap sync после каждого изменения
После любого изменения в web-коде нужно пересобрать и вызвать
cap sync, иначе в APK будет старая версия.
Собрать APK
cd android
./gradlew assembleDebugAPK будет в:
android/app/build/outputs/apk/debug/app-debug.apk
Первая сборка
Первый запуск Gradle скачивает ~500MB зависимостей. Это нормально. Последующие сборки занимают 10-30 секунд.
Установить на эмулятор
adb install android/app/build/outputs/apk/debug/app-debug.apkЗапустить приложение
adb shell am start -n <appId>/.MainActivityНапример:
adb shell am start -n bike.ryazan.tracker/.MainActivityappId — значение из capacitor.config.ts.
Переустановка после изменений
npm run build && npx cap sync android && cd android && ./gradlew assembleDebug && cd .. && adb install -r android/app/build/outputs/apk/debug/app-debug.apk && adb shell am start -n bike.ryazan.tracker/.MainActivityФлаг -r при adb install — переустановка поверх существующего.
Полезные команды adb
| Команда | Описание |
|---|---|
adb devices | Список подключённых устройств |
adb logcat | Логи Android в реальном времени |
adb logcat -s "Capacitor" | Только логи Capacitor |
adb shell pm list packages | grep ryazan | Найти установленный пакет |
adb uninstall bike.ryazan.tracker | Удалить приложение |
adb shell am force-stop bike.ryazan.tracker | Принудительно остановить |
adb shell input text "hello" | Ввести текст в поле ввода |
adb shell screencap /sdcard/screen.png && adb pull /sdcard/screen.png | Скриншот |
Отладка WebView
Capacitor-приложение — это WebView. Для отладки:
- Открой Chrome на компьютере
- Перейди на
chrome://inspect/#devices - Эмулятор должен появиться в списке
- Нажми “inspect” рядом с WebView приложения
- Откроется Chrome DevTools с консолью, сетью, DOM
Если WebView не видно
Убедись что в
capacitor.config.tsнетserver.androidScheme: 'http'— Chrome inspect работает только сhttps(дефолт в Capacitor 6+).
Типичные проблемы
”ANDROID_HOME is not set”
Добавь в ~/.zshrc и перезапусти терминал. См. раздел Настройка ANDROID_HOME.
”No installed build tools found"
sdkmanager "build-tools;34.0.0""Failed to find Platform SDK with path: platforms;android-34”
sdkmanager "platforms;android-34"Gradle зависает на первой сборке
Это нормально — скачиваются зависимости. Первая сборка может занять 3-5 минут. Не прерывай.
Два Gradle-процесса конкурируют за lock
Если запустил два ./gradlew параллельно — один зависнет в ожидании lock. Убей лишний:
ps aux | grep gradle-wrapper | grep -v grep
kill <PID старого процесса>