Android ddms android studio

Google Android — это несложно

Добро пожаловать на форум сайта

Использование DDMS

Использование DDMS

Сообщение =bor= » 11 сен 2013, 22:37

Android поставляется с инструментом отладки, называемым Dalvik Debug Monitor Server (DDMS), который обеспечивает порт-форвардинг, захват экрана на устройстве, информацию о тредах и кучах на устройстве, LogCat, информацию о процессах и состоянии радио, входящий вызов и SMS-имитацию, имитацию данных о местоположении, и многое другое. На этой странице приводится скромное обсуждение особенностей DDMS, это не исчерпывающий обзор всех функций и возможностей.

Запуск DDMS
________________________________________
DDMS интегрирован в Eclipse, а также поставляется в tools-директории SDK. DDMS работает как с эмулятором, так и с подключенным устройством. Если оба подключены и работают одновременно, DDMS по умолчанию работает эмулятором.
• Из Eclipse: нажмите Window> Open Perspective> Other . > DDMS.
• Из командной строки: Введите ddms (или ./ddms на Mac/Linux) из tools / каталога.

Как DDMS взаимодействует с помощью отладчика
________________________________________
На платформе Android каждое приложение выполняется в собственном процессе, каждый из которых работает в своей собственной виртуальной машине (VM). Каждая виртуальная машина предоставляет уникальный порт, к которому отладчик может подключиться.
Когда стартует DDMS, он подключается к adb. Когда устройство подключено, создается служба мониторинга VM между adb и DDMS, которая уведомляет DDMS когда VM на устройстве запускается или останавливается. После того, как виртуальная машина запущена, DDMS получает идентификатор процесса виртуальной машины (PID), через adb, и открывает соединение с отладчиком виртуальной машины, через adb демона (adbd) на устройстве. DDMS теперь может общаться с VM с помощью собственного проводного протокола.
DDMS назначает порт отладки каждой виртуальной машине на устройстве. Как правило, DDMS назначает порт 8600 первой VM, следующий 8601, и так далее. Когда отладчик подключается к одному из этих портов, весь трафик передается в отладчик из связанных VM. Вы можете подключать только один отладчик к одному порту, но DDMS может работать с несколькими присоединёнными отладчиками.
По умолчанию DDMS также прослушивает другой порт отладки, DDMS «базовый порт» (8700, по умолчанию). Базовый порт является портом форвардинга, который может принимать VM трафик с любого порта отладки и направлять его в отладчик на порту 8700. Это позволяет присоединить один отладчик к порту 8700 и отлаживать все виртуальные машины на устройстве. Трафик, который направляется, определяется текущим выбранным процессом с точки зрения DDMS.
На следующем рисунке показан типичный экран DDMS в Eclipse. Если вы стартуете DDMS из командной строки, экран немного отличается, но большая часть функциональности идентична. Обратите внимание, что выделенный процесс, com.android.email , который выполняется в эмуляторе, имеет порт отладки 8700, назначенный ему, а также 8606. Это означает, что в настоящее время DDMS перенаправляет порт 8606 на статический порт отладки 8700.


Рисунок 1. Скриншот DDMS

Если вы не используете Eclipse и ADT, читайте Configuring your IDE to attach to the debugging port для получения дополнительной информации о прикреплении отладчика.

Совет: Вы можете установить ряд предпочтений DDMS в File > Preferences. Предпочтения сохраняются в $HOME/.android/ddms.cfg.

Известные проблемы с отладкой Dalvik
Отладка приложения в Dalvik VM должна работать так же, как и в других виртуальных машинах. Однако, когда происходит выход из пошагового синхронизированного кода, курсор «текущей строки» может перескочить на последнюю строку в методе на один шаг.

Использование DDMS
________________________________________
В следующих разделах описано, как использовать DDMS и различные вкладки и панели, которые являются частью DDMS GUI. Версия Eclipse и версия для командной строки имеют незначительные различия пользовательского интерфейса, но ту же функциональность. Информацию о запуске DDMS, см. предыдущий раздел в этом документе Запуск DDMS.

Просмотр использования кучи для процесса
DDMS позволяет просматривать, сколько динамической памяти используется процессом. Эта информация полезна для отслеживания использования кучи в определенный момент времени в ходе выполнения вашего приложения.

Читайте также:  Teamviewer addon android tv

Для просмотра использования кучи для процесса:
1. На вкладке Devices выберите процесс, для которого вы хотите увидеть информацию кучи.
2. Нажмите на кнопку Update Heap для включения информации кучи для процесса.
3. На вкладке Heap кликните Cause GC для вызова сбора мусора, которая разрешает сбор данных кучи. По завершении операции, вы увидите группы типов объектов и память, которая была выделена для каждого типа. Вы можете нажать Cause GC снова, чтобы обновить данные.
4. Нажмите на тип объекта в списке, чтобы увидеть гистограмму, которая показывает количество объектов, выделенных для конкретного размера памяти в байтах.

Отслеживание выделения памяти объектов
DDMS предоставляет функцию, позволяющую отслеживать объекты, размещённые в памяти, и увидеть, какие классы и потоки выделяются объектам. Это позволяет отслеживать в режиме реального времени, где объекты выделяются при выполнении определенных действий в приложении. Эта информация является ценной для оценки использования памяти, которая могут повлиять на производительность приложения.

Чтобы отслеживать распределение памяти объектов:
1. На вкладке Devices выберите процесс, которому вы хотите включить отслеживание.
2. На вкладке Tracker Allocation нажмите Start Tracking, чтобы начать слежение. С этого момента все, что вы делаете в вашем приложении, будет отслеживаться.
3. Нажмите Get Allocations, чтобы увидеть список объектов, которые были выделены, с тех пор как вы нажали на кнопку Start Tracking. Вы можете нажать на Get Allocations еще раз, чтобы добавить в список новые объекты, которые были выделены.
4. Чтобы остановить отслеживание или удалить данные и начать заново, нажмите кнопку Stop Tracking.
5. Нажмите на определенной строке в списке, чтобы увидеть более подробную информацию, такую как метод и номер строки кода, который соответствует объекту.

Работа с файловой системой эмулятора или устройства
DDMS предоставляет вкладку File Explorer, которая позволяет просматривать, копировать и удалять файлы на устройстве. Эта функция полезна при рассмотрении файлов, которые создаются приложением или если вы хотите передавать файлы на устройство или с устройства.

Для работы с файловой системой эмулятора или устройства:
1. На вкладке Devices выберите эмулятор, на котором вы хотите посмотреть файловую систему.
2. Чтобы скопировать файл с устройства, найдите файл в File Explorer и нажмите кнопку Pull file .
3. Чтобы скопировать файл в устройство, нажмите кнопку Push file на вкладке File Explorer.

Изучение информации потока
Вкладка Threads DDMS показывает вам в данный момент потоки для выбранного процесса.
1. На вкладке Devices выберите процесс, потоки которого вы хотите исследовать.
2. Нажмите Update Threads.
3. На вкладке Threads вы можете просмотреть информацию о потоке для выбранного процесса.

Запуск метода профилирования
Метод профилирования предназначен для отслеживания определенных метрик о методе, например, количество вызовов, время выполнения, и время, потраченное на выполнение метода. Если вы хотите более детальный контроль над тем, где собираются данные профилирования, используйте startMethodTracing() и stopMethodTracing() методы. Для получения дополнительной информации о создании журнала трассировки см. Profiling and Debugging UIs.

Перед началом метода профилирования в DDMS, будьте в курсе следующих ограничений:
• Android 1.5 устройства не поддерживаются.
• Android 2.1 и более ранние устройства должны иметь SD карту и приложение должно иметь разрешение на запись на карту памяти SD.
• Android 2.2 и более поздним устройствам не нужны карты SD. Файлы журнала трассировки передаются непосредственно вашему компу.

Для начала метода профилирования:
1. На вкладке Devices выберите процесс, которому вы хотите включить метод профилирования.
2. Нажмите Start Method Profiling.
3. Взаимодействуйте с приложением, чтобы стартовать метод, которые вы хотите профилировать.
4. Нажмите Stop Method Profiling. DDMS останавливает профилирование приложения и открывает Traceview с информацией метода профилирования, которая была собрана между временем, как вы нажали на Start Method Profiling и Stop Method Profiling.

Используем инструмент Network Traffic
В Android 4.0, DDMS (Dalvik Debug Monitor Server) включает в себя вкладку Detailed Network Usage, позволяющую отслеживать, когда ваше приложение делает сетевые запросы. Используя этот инструмент, вы можете контролировать, как и когда ваше приложение передаёт данные и оптимизировать исходный код соответствующим образом. Также можно различать разные типы трафика, применяя «тэги» сетевых сокетов перед использованием.

Читайте также:  Pes 2009 для андроид

Эти тэги показываются на диаграмме области стека в DDMS, как показано на рисунке 2:


Рисунок 2. Вкладка Network Usage.

Контролируя частоту передачи ваших данных, и объем данных, передаваемых во время каждого соединения, вы можете определить области приложения, которые можно сделать более эффективными для использования батареи. Как правило, вы должны смотреть на короткие всплески, которые можно отложить, или что должно вызываться позднее, передаётся заранее.

Чтобы лучше определить причину всплесков передачи, TrafficStats API позволяет пометить передачу данных, происходящих в поток; используйте setThreadStatsTag(), а затем вручную тегируйте (и снимайте тег) индивидуальные сокеты, используя tagSocket() и untagSocket(). Например:

Тегирование сокетов поддерживается в Android 4.0, но статистика в реальном времени будет отображаться только на устройствах под управлением Android 4.0.3 или выше.

Использование LogCat
LogCat интегрирован в DDMS и выводит сообщения, которые вы выводите с использованием Log класса наряду с другими сообщениями, таких как трассировка стека, когда возникают исключения. Смотрите тему Reading and Writing Log Messages для получения дополнительной информации о том, как записывать сообщения в LogCat.
Когда Вы настроили логирование, вы можете использовать LogCat фичу DDMS для фильтрации определенных сообщений с помощью следующих кнопок:
• Warn (Все)
• Debug (Отладка)
• Info (Информация)
• Warn (Предупреждения)
• Error (Ошибки)
Вы также можете настроить свой собственный пользовательский фильтр для указания большего количества деталей, таких как фильтрация сообщений с определённым тегом и идентификатором процесса, вызвавшего сообщения лога. Кнопки add filter, edit filter и delete filter позволяют Вам управлять своими пользовательскими фильтрами.

Эмуляция операций с телефоном и навигацией
Вкладка Emulator control позволяет имитировать телефонные вызовы и данные о состоянии сети. Это полезно, когда вы хотите проверить надежность приложения в различных сетевых средах.

Изменение состояния сети, скорости и задержки
Секция Telephony Status вкладки Emulator controls позволяет изменять различные аспекты состояния телефоной сети, скорость и задержки. Следующие опции доступны для вас и вступают в силу немедленно после того, как вы установите их:
• Voice — незарегистрированные, дома, роуминг, поиска, отказано
• Data — незарегистрированные, дома, роуминг, поиска, отказано
• Speed — полный, GSM, HSCSD, GPRS, EDGE, UMTS, HSDPA
• Latency — GPRS, EDGE, UMTS

Имитация звонков или текстовых сообщений SMS
Секция Telephony Actions вкладки Emulator controls позволяет имитировать звонки и сообщения. Это полезно, когда вы хотите, чтобы проверить надежность приложения в ответ на входящие звонки и сообщения, отправленные на телефон. Следующие действия доступны для Вас:
• Voice — Введите номер в поле Incoming number и нажмите кнопку Call для отправки симуляции вызова на эмулятор или телефон. Нажмите Hang up для завершения вызова.
• SMS — Введите номер в поле Incoming number и сообщение в поле Message: и нажмите кнопку Send, чтобы отправить сообщение.

Установка местоположения
Если ваше приложение зависит от местоположения телефона, DDMS может отправлять на устройство или AVD макет местоположения. Это полезно, если вы хотите проверить различные аспекты расположения вашего приложения без физического перемещения. Следующие типы данных местоположения доступны для Вас:
• Manual — установить местоположение вручную, с указанием десятичных или шестидесятеричных значений долготы и широты.
• GPX — GPS Обмен файлами
• KML — Keyhole Markup Language файл
Для получения дополнительной информации о предоставлении макета данных о местоположении см. Location Strategies.

Источник

Общая информация об отладке в Android Studio

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

Когда вы разрабатываете приложение, то студия собирает отладочную версию программы, соединяется с устройством/эмулятором, устанавливает и запускает её.

Читайте также:  Что делать когда потерял андроид

Обычно для запуска приложения вы используете значок с зелёным треугольником Run (Shift+F10) на панели инструментов. Для отладки следует нажимать соседнюю кнопку Debug (Shift+F9) с изображением жучка .

Остальные действия будут идентичными — вам надо выбрать устройство, на котором будет происходить отладка.

Android Studio откроет окно Debug. Можно открыть его вручную через кнопку 5: Debug в нижней части среды разработки. Окно показывает потоки и переменные в вкладке Debugger, статус устройства в вкладке Console и системные логи в вкладке Logcat.

Если приложение уже запущено, то необязательно его перезапускать для работы в отладочном режиме. Вы можете нажать на кнопку Attach debugger to Android proccess , которая идёт сразу после кнопку с жучком.

В вкладке Logcat вы видите системные сообщения, включая сообщения от вашей программы, если вы использовали их своём коде. Для записи логов используется класс Log. Подробнее о нём в отдельной статье.

Логи можно просматривать также через панель Android DDMS (Dalvik Debug Monitor Server) — запускается через кнопку 5: Android в нижней части студии. В Android DDMS вы можете просматривать логи только нужного процесса, если нажмёте на кнопку Only Show Logcat from Selected Process .

Точки останова (Breakpoints)

Точки останова позволяет приостановить выполнение программы на нужной строчке кода, проверить значение переменных, запустить выражение и продолжать выполнение кода строчка за строчкой. Позволяет выявить ошибки, которые не удаётся вычислить простым просмотром кода.

Откройте свой исходник, определите строку кода, в которой хотите поставить точку останова и щёлкните по ней. Строка окрасится в жёлтый цвет. Щёлкните в левой части редактора кода в серой области. В этом месте появится красный кружок (повторный щелчок уберёт его), а строка примет розовый цвет. Точку останова можно ставить не только для исполняемого оператора, но и на комментарии.

Запустите приложение в отладочном режиме. Когда выполнение программы дойдёт до установленной точки останова, то студия прекратит дальнейшее выполнение приложения, кружок станет ещё более красным и строка будет выделена. И затем вы можете попытаться выявить причину ошибки.

Для просмотра всех точек останова и их настроек щёлкните на кнопке View Breakpoints в левой части панели Debug . Появится отдельное диалоговое окно.

После того, как вы установили точки останова, щёлкните кнопку Rerun для повторного запуска программы. Когда выполнение кода дойдёт до установленной точки останова, студия выполнит паузу и подсветить строку кода. Панель Debug позволит проверить переменную и выполнить код шаг за шагом.

Для проверки переменных раскройте список в панели Variables. Если панель не видна, то щёлкните кнопку Restore Variables

Для вычисления выражения в текущей точки щёлкните кнопку Evaluate Expression

Для перехода на следующую строку кода без выполнения щёлкните кнопку Step Over .

Для перехода на первую строку кода внутри метода щёлкните кнопку Step Into .

Для перехода на следующую строку за пределами текущего метода щёлкните кнопку Step Out .

Чтобы продолжить работу приложения в нормальном режиме, нажмите кнопку Resume Program .

Отслеживание потребления памяти

Студия позволяет также отслеживать потребления памяти объектами и показывает, какие классы и потоки используют объекты.

Запустите студия в отладочном режиме, щёлкните 6: Android, чтобы открыть панель Android DDMS. Выберите вкладку Devices | logcat, выберите ваше устройство из выпадающего списка, выберите вашу программу по имени пакета из списка запущенных программ.

Щёлкните кнопку Start Allocation Tracking . Начинайте пользоваться программой.

Повторно нажмите на предыдущую кнопку Stop Allocation Tracking. Студия покажет объекты, выделенные системой для работы.

Android Device Monitor

Для анализа потребления памяти, сетевого трафика, поведения приложения при входящих звонках можно использовать графический инструмент Android Device Monitor. Щёлкните кнопку Monitor на панели инструментов. Android Device Monitor откроется в новом окне. Опытные программисты увидят знакомое окно, когда работали с Eclipse.

Скриншоты и видео

Вы можете делать скриншоты и видео работающего приложения.

Запустите приложение и откройте панель 6: Android. Щёлкните кнопку Screen Capture в левой части панели.

По такому же принципу можно сделать видеозапись через кнопку

Источник

Оцените статью