Для чего бывает нужна отладка по USB и как включить? Инструкция для разных версий Android OS. Отладка Android приложения на смартфоне
28 октября 2013 г.
Переводим... Перевести Китайский (упрощенное письмо) Китайский (традиционное письмо) Английский Французский Немецкий Итальянский Португальский Русский Испанский Турецкий
Удаленная отладка приложений в ОС Android *
Android* Debug Bridge
Android Debug Bridge (ADB) - это программа командной строки, поддерживающая обмен данными между отладчиком на компьютере (обычно это GDB *, DDMS * (Dalvik * Debug Monitor Server) или ADT) и образом Android на целевом устройстве. Целевой образ может работать как на эмулируемом виртуальном устройстве, так и на физическом устройстве, обмен данными с которым осуществляется с помощью кабеля USB-OTG или адаптера USB-Ethernet. ADB является связующим элементом, дающим возможность отлаживать приложения Android.
Устройство, к которому выполняется подключение, может быть самых разных типов и размеров. Обычно это смартфон или планшет. Впрочем, это может быть и медицинский планшет, промышленное устройство, а также домашнее устройство для управления электроэнергией, складской терминал или любые другие аналогичные системы.
Настройка Android Debug Bridge для удаленной отладки приложений на платформе с процессором Intel® AtomTM практически не отличается от отладки другой архитектуры.
Прежде всего необходимо установить на компьютере Android SDK, в том числе ADB. Инструкции см. по адресу http://developer.android.com/sdk/installing.html .
Настройка ADB*
Если целевой образ запущен на физическом устройстве, то нужно включить поддержку USB-OTG или USB-Ethernet. Для поддержки USB-Ethernet требуется изменение конфигурации ядра и повторная сборка. OEM-поставщик предоставит необходимую информацию по этой процедуре.
Стандартный способ удаленной отладки приложений предусматривает использование интерфейса USB-OTG, которым оснащено большинство устройств с Android. Установка достаточно подробно описана на веб-сайте разработчиков Android *http://developer.android.com/guide/developing/device.html .
Вот основные действия:
1. Объявите для приложения свойство debuggable в манифесте Android.
При использовании Eclipse можно пропустить этот шаг, поскольку отладка автоматически включается при запуске приложения из среды разработки Eclipse.
В файле AndroidManifest.xml добавьте android:debuggable="true" в элемент
Примечание: Если вручную включить отладку в файле манифеста, не забудьте отключить ее перед сборкой приложения для выпуска (опубликованное приложение, как правило, не должно иметь возможность отладки).
2. Включите на устройстве отладку через USB.
На устройстве откройте Settings > Applications > Development и установите флаг USB debugging (в версии Android 4.0 он находится в меню Settings > Developer options ).
3. Настройте систему для обнаружения устройства.
o В Windows нужно установить драйвер USB для ADB. Руководство по установке и ссылки на драйверы OEM-производителей см. в документе OEM USB Drivers .
o Для Mac OS * X устанавливать дополнительные драйверы не нужно. Пропустите этот шаг.
o При использовании Ubuntu * Linux нужно добавить файл правил udev , содержащий конфигурацию USB для каждого типа устройств, которые следует использовать при разработке. В файле правил каждый изготовитель устройств обозначается уникальным идентификатором с помощью свойства ATTR{idVendor} . Список идентификаторов изготовителей см. в разделе Список идентификаторов изготовителей USB ниже. Настройка обнаружения устройств в Ubuntu Linux:
Войдите в систему с правами root и создайте файл: /etc/udev/rules.d/51-android.rules .
Добавьте в файл каждого изготовителя, используя следующий формат:
SUBSYSTEM=="usb", ATTR{idVendor}=="
Примечание: Синтаксис правил может немного отличаться в зависимости от используемой среды. При необходимости ознакомьтесь с документацией udev к системе. Описание синтаксиса см. в этом руководстве по написанию правил udev .
Теперь выполните команду:
chmod a+r /etc/udev/rules.d/51-android.rules
При подключении через USB можно узнать, подключено ли устройство, выполнив команду ADB adb devices из папки platform-tools/ . Если устройство подключено, то на экране будет показано имя устройства со словом device.
При загруженной ОС Android подключите кабель USB-OTG к порту (мини-USB типа b) на устройстве, а другой разъем кабеля - к порту (USB типа A) на компьютере.
Если все работает, то можно будет выполнить следующую команду для отображения подключенного устройства:
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
0123456789ABCDEF device
Примечание:
Чтобы узнать, какое имя устройства назначено этому подключению на компьютере с Linux, можно выполнить dmesg для поиска адреса usb-storage: device found at ADB в Windows *
Загрузите и установите Eclipse Classic по адресу http://www.eclipse.org/downloads/ Загрузите пакет Android * SDK для Windows * по адресу http://developer.android.com/sdk/index.html . (android-sdk_r18-windows.zip, or installer_r18-windows.exe). После установки Android SDK файл adb.exe будет находиться в папке Передача данных между сервером и клиентом в ADB
До этого мы обсуждали установку ADB на компьютере разработчика. На самом деле этот клиент - серверная программа, содержащая три компонента: Клиент, запускаемый на компьютере разработчика. Можно вызвать клиент из оболочки с помощью команды ADB. Другие средства Android, такие как подключаемый модуль ADT и DDMS, также создают клиенты ADB. Сервер, запускаемый на компьютере разработчика в виде фонового процесса. Сервер управляет обменом данными между клиентом и управляющей программой ADB на эмуляторе или на устройстве. Управляющей программа, запускаемая на каждом экземпляре эмулятора или на каждом устройстве в виде фонового процесса. При запуске клиента ADB клиент сначала проверяет, запущен ли уже процесс сервера ADB. Если нет, то клиент запускает процесс сервера. Сервер после запуска подключается к локальному TCP-порту 5037 и прослушивает команды, отправленные клиентами ADB. Все клиенты ADB используют порт 5037 для обмена данными с сервером ADB. TЗатем сервер устанавливает подключения ко всем запущенным эмуляторам и устройствам. Для обнаружения эмуляторов и устройств сервер проверяет все порты с нечетными номерами в диапазоне от 5555 до 5585 (этот диапазон используется эмуляторами и устройствами). При обнаружении демона ADB устанавливается подключение к этому порту. Обратите внимание, что каждый эмулятор или устройство получает пару портов с последовательными номерами: порт с четным номером для подключения консоли и порт с нечетным номером для подключения ADB. Например: Emulator 1, console: 5554 Emulator 1, adb: 5555 Emulator 2, console: 5556 Emulator 2, adb: 5557 ... Как показано выше, к ADB на порте 5555 подключен тот экземпляр эмулятора, консоль которого прослушивает порт 5554. После подключения сервера ко всем экземплярам эмулятора можно использовать команды ADB для управления этими экземплярами и доступа к ним. Сервер управляет подключениями к эмуляторам и устройствам и обрабатывает команды для нескольких клиентов ADB, поэтому можно управлять любым эмулятором или устройством с любого клиента (или с помощью сценария). Запуск ADB
Введите "adb shell". Символ # указывает, что соединение успешно установлено. Основные команды ADB для устройств
Перечисленные ниже команды помогают передать отлаживаемое приложение на целевое устройство или в эмулятор с помощью командной строки. Это может быть удобно, особенно если отсутствует подключение терминала ssh. adb push adb pull adb sync [ (-l отобразить список, но не копировать) (см. "adb help all") adb shell - интерактивный запуск удаленной оболочки adb shell adb emu adb logcat [ adb forward localabstract: localreserved: localfilesystem: dev: jdwp: adb jdwp - показать список всех PID процессов с транспортом JDWP adb install [-l] [-r] [-s] ("-l" блокировка пересылки приложения) ("-r" переустановить приложение, сохранив его данные its data) ("-s" установить на карту памяти SD, а не во внутреннюю флеш-память) adb uninstall [-k] Дополнительные сведения об установке и использовании ADB см. по адресу http://developer.android.com/guide/developing/tools/adb.html Отладка нативного кода C/C++ с помощью отладчика
Если отладка выполняется с помощью GDB, то задачи по обработке процесса передачи данных такой отладки выполняет gdbserver на устройстве, но можно использовать и драйвер USB-Ethernet с ADB для обработки транспортного уровня передачи данных, по которому gdbserver обменивается данными по протоколу TCP/IP с GDB на компьютере разработчика. Существует приложение gdbclient, настраивающее среду обмена данными отладки и запускающее gdbserver на отлаживаемом устройстве. Использование: gdbclient EXECUTABLE:PORT EXECUTABLE имя исполняемого файла (по умолчанию: app_process) PORT порт подключения (по умолчанию:1234) PROG_PATH полный путь к исполняемому файлу в целевой системе (например: /system/bin/mediaserver) Если параметр PROG_PATH задан, gdclient пытается запустить gdbserver и присоединить его к запущенному PROG_PATH. Для запуска gdbserver явным образом можно использовать следующую команду # gdbserver:1234 --attach 269 Attached; pid = 269 Listening on port 1234 Приведенные ниже пошаговые инструкции по запуску сеанса отладки показывают, что ADB по-прежнему используется для передачи данных отладки, даже если отладка выполняется с помощью GDB, а не ADT или DDMS. Предположим, что используется порт 1234. Запустите процесс: gdbserver:1234 /system/bin/executable или подключитесь к существующему процессу: gdbserver:1234 --attach pid Перенаправьте локальный порт 1234 рабочей станции на устройство с помощью adb: adb forward tcp:1234 tcp:1234 Запустите особую версию gdb, находящуюся в области prebuilt структуры исходного кода: prebuilt/Linux/toolchain-eabi-4.x.x/bin/i686-android-linux-gdb (for Linux) prebuilt/darwin-x86/toolchain-eabi-4.x.x/bin/i686-android-linux-gdb (for Darwin) Если особую версию GDB не удается найти, выполните команду find prebuilt –name i686-android-linux-gdbin в структуре исходного кода, чтобы найти и запустить последнюю версию. Необходимо скопировать исполняемый файл в папку symbols, а не в главную папку Android, поскольку файл в главной папке очищен от символьной информации. В GDB укажите расположение общих библиотек для загрузки: set solib-absolute-prefix /absolute-source-path/out/target/product/product-name/symbols set solib-search-path /absolute-source-path/out/target/product/product-name/symbols/system/lib absolute-это путь к дереву исходного кода. Следите за правильностью указываемых папок: GDB может не выдать сообщение в случае ошибки. Подключитесь к устройству с помощью команды GDB: (gdb) target remote:1234 Параметр:1234 указывает на подключение к порту 1234 локального компьютера, соединенному с устройством с помощью ADB. Теперь можно начать отладку встроенного кода C/C++ на платформе Android * с помощью GDB привычным образом. Дополнительные сведения см. в документации к . Использование подключаемого модуля ADT * для Eclipse * для отладки приложений Android *
Для устройств на базе архитектуры Intel® процесс установки не имеет существенных отличий от описанного по адресу http://developer.android.com/sdk/eclipse-adt.html#installing . Подключаемый модуль средств отладки Android (ADT *) обеспечивает все возможности интегрированной отладки приложений в среде Eclipse * для эмуляторов и устройств с архитектурой Intel. Поддерживается два представления отладки с различными наборами функций. Можно переключаться между ними по мере необходимости; каждое из них обладает определенными преимуществами. Представление Debug в Eclipse *
Представление отладки в Eclipse предоставляет доступ к следующим вкладкам: Debug - отображение уже отлаженных и отлаживаемых в настоящий момент приложений Android и запущенных в настоящий момент потоков Variables - когда заданы точки останова, отображение значений переменных при выполнении кода Breakpoints - список точек останова в коде приложения LogCat - просмотр сообщений в журнале системы в реальном времени. Вкладка LogCat также доступна в представлении DDMS. Чтобы открыть представление Debug Perspective, щелкните Window > Open Perspective > Debug. Дополнительные сведения см. в документации к отладчику Eclipse. Представление DDMS
Представление DDMS в Eclipse обеспечивает доступ к всем функциям DDMS из среды разработки Eclipse. Доступны следующие разделы DDMS: Devices - список физических и виртуальных устройств, подключенных к ADB. Emulator Control - выполнение различных действий с устройством. LogCat - просмотр сообщений в журнале системы в реальном времени. Threads - отображение запущенных в настоящее время потоков в виртуальной машине. Heap - использование кучи виртуальной машиной. Allocation Tracker - просмотр выделения памяти объектам. File Explorer - работа с файловой системой устройства. Среда запуска приложений для отладки
При отладке приложения Android * для архитектуры Intel® разница заключается в настройке отладки целевого устройства. Чтобы выбрать устройство с помощью диспетчера Android * Virtual Device Manager, входящего в состав Android * SDK, откройте меню Window>AVD Manager в Eclipse *. Необходимо выбрать Intel Atom в качестве целевого EABI для образа ОС и эмуляции устройства. Если вы выполнили все описанные в начале этой статьи действия по установке ADB * и созданию моста отладки к физическому устройству, то в Eclipse появится меню выбора устройства, где можно выбрать целевое устройство для развертывания приложения и его отладки. В остальном отладка приложения Android * для архитектуры Intel® практически не отличается от отладки приложений Android * для архитектуры ARM *. Действуют все правила и инструкции, приведенные по адресу Сегодня попробуем разобраться с одним интересным пунктом меню, в разделе Настройки - Для разработчиков
. В этом меню размещены 37 подпунктов для гибкой настройки и глубокого управления своим устройством на Android. Далее предлагаем ознакомиться с каждым из них и рассмотреть скриншоты самого меню для разработчиков. Все действия проводятся на смартфоне Nexus 4, который работает под управлением ОС Android 4.4. Комментирование каждого пункта меню основано на его же описании. Если читатель знает более подробную информацию о какой-то команде - делитесь опытом. Не забывайте, все изменения в этом режиме вы вносите на свой страх и риск! Для того чтобы включить отоброжение пункта "Для разработчиков" в списке настроек, нужно провести следующие действия: Если появилось вот такое уведомление, то у нас все получилось! Меню "Для разработчиков" теперь будет находится в списке в настройках гаджета. На Android 4.4 пункт размещен между "Печать" и "О телефоне"! Вот список и описание всех функций, которое дает нам скрытое меню: Сегодня попробуем разобраться с одним интересным пунктом меню - режим разработчика Android (инженерное меню Андроид). В разделе Настройки
- «Для разработчиков
» размещены функции для гибкой настройки и глубокого управления своим устройством на Android. Все действия по включению режима Android разработчика проводятся на планшете Nexus 7 второго поколения, который работает под управлением ОС Android 6.0.1. Комментирование каждого пункта меню основано на его же описании. Не забывайте, все изменения в этом режиме вы вносите на свой страх и риск! Меню «Для разработчиков
» появится в настройках гаджета. На Android 6.0 пункт размещен в категории «Система
». Теперь рассмотрим список команд и возможностей, которые преподносит нам режим разработчика Андроид. Так выглядит меню «Для разработчиков». Приведены скриншоты из упомянутого планшета на Android 6.0. Большинство людей используют свой планшет или телефон в режиме «как есть», не замечая разных неудобств в работе или просто мирясь с ними. Однако довольно большая категория пользователей старается доработать под свои нужды или получить возможность свободно манипулировать данными и настройками. Ещё одна категория - работники сервисных центров. Отладка по USB - метод для тех, кто хочет познакомиться с планшетом или телефоном поближе. Производить регулировки, изменения, диагностировать неполадки и так далее. Все немного знакомы с принципом построения операционной системы. Вам должно быть ясно, что искать ответ на вопрос, как включить отладку по USB, нужно в пункте «Настройки» главного меню. Однако расположение и способ включения сильно отличаются. Это , а также выбора производителя устройства. Рассмотрим способы, как именно можно включить режим отладки по USB. В прошивках, где производитель не постарался усложнить доступ к возможностям рутирования и перепрошивки, а также на устройствах без возможности тонкой диагностики, отладка Андроид по USB включается . В пункте «Настройки» главного меню есть раздел «Разработка», в котором нужно поставить галочку напротив пункта «Отладка по USB».
Аналогично выглядит расположение и для прошивок с «близкой» версией. Например, это может быть тот же пункт «Настройка», однако дальше подменю будет называться «Для разработчиков», где тоже нужно поставить галочку напротив опции отладки. Здесь более развёрнутое меню, пункт разработки находится по адресу «Настройки» - «Приложения». Далее режим отладки по USB Android включается аналогично описанным выше . Может быть вариант, когда подменю «Приложения» в меню «Настройки» называется «Ещё». В остальном - аналогично пункту 3. Здесь опция Android отладки по USB сознательно скрыта. Чтобы галочка активации стала доступна, нужно зайти , выбрать пункт «О планшете» и примерно 10 раз нажать на «Номер сборки». После этого в меню «Настройки» появится подпункт «Для разработчиков», где станет доступна опция «Отладка по USB». Пункт «О планшете» может быть расположен прямо в меню «Настройки». Однако есть версии сборок операционной системы, когда нужно дополнительно зайти в подменю «Система» либо «Общие». В остальном отладка , как в пункте 5. Прежде чем будет использоваться приложение для отладки по USB или утилита для получения root-доступа, нужно правильно подключить устройство к компьютеру. Первое, что может создать препятствие на этом пути, - отсутствие драйверов. Однако эта проблема решаема. Для брендовых устройств с нестандартными протоколами обмена все необходимое можно найти на официальных сайтах. Кроме того, программы телефонных книг, картинок, музыки от производителей устройства обычно комплектуются наборами драйверов. Достаточно установить соответствующую утилиту. Как хороший вариант, можно порекомендовать программу MOBILedit Enterprise, которая предлагает огромный выбор драйверов для всех типов оборудования.
или смартфонов от китайских производителей на основе процессоров МТК. Если же всё равно не удаётся установить драйвера, стоит поискать их на специализированных сайтах по модели устройства и версии прошивки операционной системы. Когда драйвера будут установлены, первое подключение к ПК потребует подтверждение доверия. После установки соответствующей галочки в запросе на планшете, обмен данными будет разрешён. Кратко перечислим некоторые задачи, которые можно решить с помощью отладки по USB: Видео о том, как включить отладку по USB на Android:
На последнем пункте стоит остановиться подробнее, поскольку рутирование является причиной включения отладки по USB примерно в 99% случаев. Рут-доступ - это, грубо говоря, максимальные права в операционной системе. Они позволяют делать резервное копирование всех контактов, содержимого сообщений, телефонной истории, и информации. По умолчанию, Андроид не предлагает . Также рут-доступ позволяет изменять оформление: менять иконки приложений, системные звуки и так далее. Но самое главное, что можно делать с таким доступом, - регулировать процессы, которые загружаются в память. Операционная система построена таким образом, что имеет событие AfterStart. В нём может быть целый список действий, вплоть до запуска других процессов. Часто это показ рекламы, сбор статистики и другие откровенно «ненужные» вещи. С помощью рут-прав и небольших приложений можно гибко управлять работой как Андроид в целом, так и отдельных программ. Настройки, которые используются для отладки и для разработки приложений, спрятаны в вашем телефоне – спрятаны в прямом смысле слова. Многие из нас идут в соответствующий раздел меню, чтобы запустить отладку USB или переключиться к рабочему модулю ART, но кроме этого, здесь имеется целый список настроек. Большая часть никогда вам не понадобится, но разве не интересно узнать, что скрывается в недрах вашего устройства? Как говорилось выше, эти функции изначально скрыты. Это имеет смысл, поскольку найти их просто, а большинству людей они попросту не нужны. Для того, чтобы добраться до них, идем в раздел «Об устройстве» и ищем там пункт «Номер сборки». После пяти быстрых тапов появляется диалоговое окно – теперь устройство считает вас разработчиком. Только попробуйте ничего не испортить, ладно? Ну, или делайте что хотите – тоже вариант. Так или иначе, возможность заставить ваш телефон перестать работать всегда имеется. А теперь посмотрим на предложенные функции повнимательнее. Понятно, что большинству пользователей все эти настройки ни на что не сдались. Кроме того, лезть туда и нажимать на пункты меню ради самого процесса - не лучшая идея. Но всегда стоит знать, что вообще можно сделать, хотя бы и просто для того, чтобы не делать этого никогда. Надеемся, что наш рассказ просветил вас немного по вопросу этих настроек и опций, записанных непонятными словами. Кстати, в зависимости от выбранного языка системы, производителя и версии ОС Android, набор пунктов может несколько отличаться разделами и их названиями. Как включить режим разработчика Андроид?
Режим разработчика Android - Ввод текста
Режим разработчика Android - Мультимедиа
Как отключить режим разработчика Андроид?
Стандартный вариант
Другая версия прошивки
Версии операционной системы 2.2 — 3.0
Другие прошивки
Операционная система версий 4.2 и более поздних
Другое расположение
Подключение к ПК
Зачем нужна отладка?
Зачем «рутировать» планшет или смартфон?
«Разблокируем» функции разработчика в телефоне
Настройки