Глиф Учебники

Урок 8. Для разработчиков: режим разработчика, отладка по USB и ADB

Курс «Android» · урок 8 из 8 · 5 минут чтения

Этот урок — для тех, кто пишет приложения или хочет управлять телефоном с компьютера: ставить APK, копировать файлы, смотреть журнал ошибок. Инструмент для этого — ADB (Android Debug Bridge), программа командной строки от Google.

Параметры разработчика

На телефоне есть скрытый раздел настроек «Для разработчиков» (у Samsung — «Параметры разработчика»). Чтобы он появился, найдите в «Настройки → О телефоне» строку «Номер сборки» и нажмите на неё семь раз подряд. Телефон может спросить PIN-код, а затем покажет «Вы стали разработчиком!». Где эта строка у разных производителей — в справке Как включить режим разработчика.

Сам раздел появится в «Настройки → Система → Для разработчиков» (у Samsung — в конце главного списка настроек). В нём много переключателей для отладки приложений. Меняйте только то, что понимаете: часть настроек влияет на скорость и стабильность телефона. Главный переключатель вверху экрана выключает режим разработчика целиком.

Отладка по USB

В разделе «Для разработчиков» включите «Отладка по USB». Подключите телефон к компьютеру кабелем, который передаёт данные (не всякий кабель для зарядки это умеет). Когда компьютер впервые обратится к телефону, на разблокированном телефоне появится окно «Отладка по USB» с цифровым отпечатком ключа RSA этого компьютера. Нажмите «Разрешить» — и, если компьютер ваш, отметьте «Всегда разрешать отладку с этого компьютера». Без этого подтверждения компьютер команды ADB выполнять не может.

«О телефоне» → «Номер сборки» ×7 → «Для разработчиков» → «Отладка по USB» Компьютер $ adb devices R58M12ABCDE unauthorized после «Разрешить» R58M12ABCDE device USB Телефон Отладка по USB отпечаток ключа RSA этого компьютера Всегда разрешать отладку с этого компьютера Отмена Разрешить Разрешать только своему компьютеру, после работы — выключить отладку
После семи нажатий на «Номер сборки» включают «Отладка по USB», и пока на телефоне не нажата кнопка «Разрешить», команда adb devices показывает его как unauthorized, а после — как device.

Разрешённый компьютер получает широкий доступ к телефону: ставит приложения, читает файлы, снимает экран. Разрешайте отладку только своему компьютеру. Если окно с вопросом появилось у чужого компьютера или у зарядной станции в общественном месте — откажите. После работы выключайте отладку, а кнопка «Отозвать доступ для отладки по USB» в том же разделе забывает все разрешённые компьютеры.

Установка ADB

ADB входит в пакет SDK Platform Tools. Если на компьютере стоит Android Studio, он уже есть — в папке platform-tools внутри Android SDK. Отдельно пакет скачивается с developer.android.com, страница SDK Platform Tools: там архивы для Windows, macOS и Linux.

  1. Распакуйте архив в удобную папку, например C:\platform-tools.
  2. Откройте в этой папке терминал (в Windows — PowerShell).
  3. Подключите телефон и проверьте связь — команда зависит от системы компьютера.

WindowsPowerShell

Программа из текущей папки запускается с .\ впереди:

PowerShell
cd C:\platform-tools
.\adb devices

Для некоторых телефонов в Windows нужен USB-драйвер производителя. Для Pixel это Google USB Driver, для других — драйвер с сайта производителя телефона.

Linux и macOSтерминал

Программа из текущей папки запускается с ./ впереди (здесь архив распакован в домашнюю папку):

Bash
cd ~/platform-tools
./adb devices

В Ubuntu и Debian ADB есть и в репозитории — пакет adb (sudo apt install adb), но версия там бывает старее.

Чтобы набирать просто adb из любой папки, добавьте папку platform-tools в переменную окружения PATH — список папок, в которых система ищет программы.

Список устройств

Терминал
$ adb devices
List of devices attached
R58M12ABCDE    unauthorized

Состояние справа говорит, что с телефоном:

СостояниеЧто значит
deviceВсё в порядке, можно работать.
unauthorizedОтладку не подтвердили — разблокируйте телефон и разрешите в окне на экране.
offlineТелефон не отвечает — переподключите кабель, перезапустите ADB.
список пустОтладка по USB выключена, кабель только для зарядки или не установлен драйвер.

После разрешения на телефоне:

Терминал
$ adb devices
List of devices attached
R58M12ABCDE    device

Если ADB перестал отвечать, его фоновый сервер перезапускают: adb kill-server, затем любая команда adb запустит его снова.

Основные команды

КомандаЧто делает
adb install app.apkУстанавливает APK с компьютера на телефон
adb uninstall com.example.appУдаляет приложение по имени пакета
adb push файл /sdcard/Download/Копирует файл с компьютера на телефон
adb pull /sdcard/DCIM/Camera/ .Копирует папку с телефона в текущую папку компьютера
adb shellОткрывает командную строку на телефоне, выход — exit
adb shell pm list packagesВыводит имена пакетов установленных приложений
adb logcatПоказывает журнал системы и приложений, остановка — Ctrl+C
adb rebootПерезагружает телефон

/sdcard — это внутренняя память, которую видно в файловом менеджере. Если подключено несколько устройств, нужное выбирается ключом -s с его номером из adb devices: adb -s R58M12ABCDE install app.apk.

Компьютер app.apk файл . текущая папка Телефон приложение /sdcard/Download/ /sdcard/DCIM/Camera/ adb install app.apk adb push файл /sdcard/Download/ adb pull /sdcard/DCIM/Camera/ . /sdcard — внутренняя память, которую видно в файловом менеджере
Команда adb install ставит APK на телефон, adb push копирует файл с компьютера в память телефона, а adb pull забирает папку с телефона в текущую папку компьютера.

Отладка по Wi‑Fi

С Android 11 ADB работает и без кабеля, если телефон и компьютер в одной сети Wi‑Fi.

  1. В разделе «Для разработчиков» включите «Отладка по Wi-Fi» и разрешите отладку в этой сети.
  2. Нажмите на сам пункт «Отладка по Wi-Fi», затем «Подключить устройство с помощью кода подключения». Телефон покажет адрес с портом и шестизначный код.

На компьютере выполните сопряжение с этим адресом и портом — ADB попросит ввести код:

Bash
adb pair 192.168.1.20:37851

Сопряжение делается один раз. Для работы нужен другой адрес и порт — строка «IP-адрес и порт» на экране «Отладка по Wi-Fi». Подключитесь к нему:

Bash
adb connect 192.168.1.20:41235

Адреса и порты у вас будут свои — смотрите на экране телефона. После этого adb devices покажет телефон, и все команды работают как по кабелю.

Телефон и компьютер — в одной сети Wi‑Fi · Android 11 и новее 1 Сопряжение — один раз телефон покажет: 192.168.1.20:37851 и шестизначный код $ adb pair 192.168.1.20:37851 ADB попросит ввести код 2 Подключение — для работы, другой порт «IP-адрес и порт»: 192.168.1.20:41235 на экране «Отладка по Wi-Fi» $ adb connect 192.168.1.20:41235 дальше команды — как по кабелю
Для отладки по Wi‑Fi сначала один раз выполняют adb pair с адресом и портом из окна с кодом, а для работы — adb connect с другим портом из строки «IP-адрес и порт».

Root и разблокировка загрузчика

На форумах часто советуют получить root — полный доступ к системе — или разблокировать загрузчик, чтобы поставить другую прошивку. Для разработки приложений это не нужно.

Разблокировка загрузчика стирает все данные на телефоне. С разблокированным загрузчиком или root часть банковских и платёжных приложений перестаёт работать, защита телефона слабеет, а производитель может отказать в гарантийном ремонте. Ошибка при прошивке может сделать телефон неработоспособным. Команды ADB, которые удаляют системные приложения, тоже могут сломать загрузку телефона.

Что дальше

Приложения для Android пишут в Android Studio на языке Kotlin: основы языка и первые шаги в Android Studio — в теме Kotlin. Android Studio сама ставит приложение на телефон через ADB, вручную набирать команды для этого не нужно.

Коротко

Проверьте себя

1. Как включить раздел «Для разработчиков»?
2. Команда adb devices показывает состояние unauthorized. Что сделать?
3. Какой командой скопировать файл с компьютера на телефон?
4. Телефон подключили к зарядной станции в кафе, и он спрашивает, разрешить ли отладку по USB. Что ответить?