Android studio как поставить точку останова

Общая информация об отладке в 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 в левой части панели.

Читайте также:  Как прокачать свой андроид смартфон

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

Источник

Android Studio Debugging: Базовые понятия и возможности

Часть первая, основы

Dec 3, 2018 · 8 min read

Что такое отладка?

Я уверен что 95% читателей этой публикации прекрасно знают что такое отладка приложения, и, говоря по простонародному, уже не раз дебажили свои приложения в поисках ошибки или проверки работы своей программы.

И все же краткое вступление с теорией будет. Поэтому если вы знаете что такое отладка, то пропустите этот раздел и листайте вниз, или сразу перейдите к второй части.

Отладка или debugging приложения — это процесс поиска и исправление ошибок или неправильного поведения кода.

Например: при получении от в ета с сервера и его обработке внутри вашего приложения происходит непонятная ошибка и на экране выводится устаревшая информация вместо новой. Чтоб разобраться что происходит и найти ошибку мы можем при помощи отладки поставить выполнение программы на паузу в нужном нам месте и посмотреть содержимое наших объектов и переменных.

Именно для этого и нужна отладка: приостанавливать выполнение кода в нужном месте и изучении состояния приложения.

Основы отладки

В этой статье я расскажу базовые вещи и возможности отладчика в Android Studio. В следующей статье я постараюсь рассказать о некоторых тонкостях и продвинутых возможностях работы с отладкой.

Как запустить отладку — Android Debugger

Запустить отладчик в Android Studio можно двумя способами:

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

Второй способ: Подключить Android Debugger к уже запущенному процессу. Удобно, потому что бывает нужно продебажить конкретный экран или нажатие на кнопку, а запускать каждый раз приложение в режиме отладки долго и неудобно.

Источник

Русские Блоги

Android Studio стала основным инструментом для разработки Android, и им довольно легко пользоваться. Как разработчик, отладка и поиск ошибок, а затем их устранение — наш навык ведения домашнего хозяйства. Как говорится, если вы хотите преуспеть, вы должны сначала отточить свои инструменты. Как и другие инструменты разработки, такие как Eclipse и Idea, Android Studio также предоставляет нам мощные навыки отладки. Сегодня мы рассмотрим навыки отладки в Android Studio. ,
Во-первых, давайте взглянем на панель отладки, предоставленную нам в студии Android (в стандартном случае):

Нажмите Восстановить вид «Темы» в правом верхнем углу, чтобы сначала отобразить текущую информацию о связанных темах:

Android-студия примерно предоставляет нам 7 функциональных областей:
Область пошаговой отладки
Область управления точками останова
Оценочное выражение
Область стека кадров потока
Область переменных объекта
Переменная зона наблюдения

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

Show Execution Point

Нажмите эту кнопку, и курсор будет расположен в текущей позиции отладки.

Пропуск одного шага, нажатие этой кнопки приведет к выполнению программы на одну строку вниз. Если текущая строка является вызовом метода, метод, вызванный этой строкой, выполняется перед переходом к следующей строке. Например, текущий код:

Если текущая отладка — вторая строка, при нажатии кнопки step over метод Math.min (num, 100) перейдет на третью строку после завершения выполнения.

Шаг за шагом, выполнение этой операции приведет к выполнению программы на одну строку вниз. Если в строке есть собственный метод, он будет вводить метод для продолжения выполнения. Обратите внимание, что если это метод в библиотеке классов, он не будет вводить метод.

Force Step Into

Принудительный шаг, как и шаг в функцию, основное отличие: если в текущей строке есть какой-либо метод, независимо от того, определен ли он нами или предоставлен библиотекой классов, вы можете перейти в метод, чтобы продолжить выполнение

Нет простого для запоминания имени, которое грубо понимается как прерывание выполнения и возврат к начальной точке выполнения метода. Во время этого процесса кадр стека, соответствующий методу, будет удален из стека. Другими словами, если метод вызывается, он возвращает На место, где вызывается текущий метод, и значения всех переменных контекста восстанавливаются до состояния, когда метод не был выполнен. Простой пример для иллюстрации:

Когда вы отлаживаете debug (), выполните эту операцию, и вы перезвоните в место, где вызывается debug (), а именно в метод alertName (). Если вы продолжите выполнять отбрасывание кадра в это время, он перезвонит туда, где вызывается alertName (), а именно main ().

Читайте также:  Android phone micro usb

Force Run to Cursor

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

Например, теперь в строке 10 я хочу отладить строку 18, но не хочу отлаживать шаг за шагом. Можем ли мы сделать все сразу? Нам нужно только установить курсор в соответствующую позицию, а затем выполнить Force Run to Cursor:

Нажатие на эту кнопку встроит интерактивный интерпретатор в текущий отлаженный оператор.В интерпретаторе вы можете выполнить любое выражение, которое вы хотите выполнить для оценки. Например, мы выполняем следующий код при отладке:

Выполнение Evaluate Expression в это время эквивалентно встраиванию интерактивного интерпретатора перед строкой отладки. Так что мы можем сделать в этом интерпретаторе? Здесь мы можем оценить результат: щелкните правой кнопкой мыши на позиции, которую вы хотите получить, и выберите «Оценить выражение». Появится следующее:

Введите выражение оценки во всплывающем окне ввода, например, здесь мы вводим Math.min (result, 50)
, как показано ниже

Нажмите Выполнить, мы обнаружили, что результат был выведен в результате, как показано ниже:

Область управления точкой останова

Нажатие на эту кнопку остановит текущее приложение и перезапустит его. Другими словами, вы можете использовать эту операцию, когда вы хотите выполнить повторную отладку, это означает перезапуск.

Нажатие на эту кнопку приостановит выполнение приложения. Если вы хотите возобновить, вы можете использовать программу возобновления, упомянутую ниже.

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

Предположим, мы добавили точки останова в строках 2 и 4. Если мы отлаживаем в строке 2 в это время, нажмите, чтобы выполнить операцию в это время, текущая позиция отладки будет автоматически выполнена в строке 4, то есть код между строками 2-4 будет выполнен автоматически.

Нажатие на эту кнопку завершит текущий процесс с помощью связанного скрипта завершения работы. Другими словами, проекты разных типов могут иметь различные режимы остановки, например: для обычных проектов Java нажатие этой кнопки означает выход из режима отладки, но приложение все равно будет выполняться Готово. В проекте Android нажатие этой кнопки означает, что приложение завершило работу.
Здесь мы возьмем в качестве примера обычный проект JAVA:

В этот момент, если мы выполним операцию остановки и обнаружим, что программа выходит из режима отладки и нормально завершает работу, результат в консоли будет следующим:

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

Используйте эту кнопку для переключения состояния точек останова: включить или отключить. В процессе отладки вы можете временно отключить отключение всех точек останова, и нормальная работа приложения была реализована. Эта функция очень полезна, например, когда вы находитесь в процессе отладки, внезапно Если вы не хотите, чтобы точка останова вмешивалась в процесс, который вас интересует, вы можете временно отключить точку останова.

Get thread dump

Получить дамп потока, нажмите эту кнопку, чтобы войти в интерфейс дампа потока:

Давайте возьмем это для представления интерфейса дампа: наиболее часто используемым в области инструментов потока является

, Может быть использован для фильтрации потоков, другие не будут объяснены
Давайте разберемся с типом потока, разбирая его, который представлен в виде разных значков:
Описание статуса потока
Значок

Thread is suspended.

Thread is waiting on a monitor lock.

Thread is running.

Thread is executing network operation, and is waiting for data to be passed.

Event Dispatch Thread that is busy.

Thread is executing disk operation.

Напишите описание изображения здесь

Нажатие на эту кнопку откроет список связанных настроек:

Мы объясним некоторые из них:
Show Values Inline
Когда эта функция включена во время отладки, значение переменной будет отображаться в правой части кода, то есть части, показанной в красном поле на рисунке ниже:

Show Method Return Values
Когда эта функция включена во время отладки, возвращаемое значение последнего выполненного метода будет отображаться в области переменных. Например, сначала, отключив функцию, мы отлаживаем этот код и наблюдаем его переменные Площадь:

После включения этой функции давайте посмотрим на изменения в области переменных:

Читайте также:  Андроид или ios различия

Эта функция просто потрясающая. Она очень полезна при отладке фрагмента кода и хочет увидеть конечный результат последнего метода, вызванного в этом коде.
Auto-Variables Mode
Когда эта функция включена, отладчик идеи автоматически оценит некоторые переменные, возможно, когда вы выполняете с определенной точкой останова, отладчик обнаружит состояние переменных до или после текущей точки отладки. , А затем выборочно вывести в область переменных.Например, чтобы проиллюстрировать, прежде чем функция будет включена, область переменных выводит всю переменную информацию:

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

Sort values alphabetically
Включите эту функцию, содержимое вывода в области переменных будет отсортировано в алфавитном порядке, это очень просто, обычно не используется, лучше следовать порядку по умолчанию.

Само собой разумеется, если вы не понимаете, вы можете проверить официальный справочный документ. Это один из лучших документов, которые я видел. Остальные операции: Настройки, Pin, Закрыть оставлены для использования.
изменить значение переменной
Во время процесса отладки мы можем легко изменить значение переменной следующим образом:

На приведенном выше рисунке текущее значение результата рассчитывается как 10, здесь мы используем Set Value, чтобы изменить результат вычисления до 100.
Переменная зона наблюдения
В этой области будет отображаться значение интересующей вас переменной. В режиме отладки вы можете добавить переменную в область наблюдения через «Добавить в часы», и изменение значения будет отображаться в области наблюдения переменной. Операция выглядит следующим образом:

Здесь нас больше интересует имя и мы хотим видеть изменения в его значении, поэтому мы уделяем ему «особое внимание». Обратите внимание, что поскольку имя является переменной-членом в это время, значение также можно увидеть в области наблюдения объекта. Если это локальная переменная, несомненно, она может использоваться только таким способом.
Классификация точек останова
Пока что мы кратко представили функции области функций отладки, области управления точками останова, выражения оценки и этих трех областей. Выше мы неоднократно упоминали точку останова один раз, но что такое точка останова? Предположительно большинство людей уже знают это, вот краткое объяснение:
Точка останова — это одна из функций отладчика, которая может заставить программу останавливаться там, где это необходимо, и помогает нам анализировать ход выполнения программы.

В Android Studio точки останова подразделяются на следующие пять категорий:
условная точка останова
точка останова журнала
ненормальная точка останова
Точка останова метода
Точка останова свойства

Метод точки останова — это тип точки останова, с которой мы больше всего знакомы, я думаю, никто этого не сделает. Ниже мы сосредоточимся на других четырех типах точек останова.
условная точка останова
Так называемая условная точка останова — это точка останова, которая возникает при определенном условии, то есть мы можем установить определенную точку останова, чтобы она интересовала только определенное событие. Наиболее типичным приложением является В цикле списка мы хотим приостановить программу при появлении определенного элемента. Например, теперь у нас есть список, который содержит четыре элемента q, 1q, 2q и 3q. Если мы хотим приостановить программу при переходе к 2q, нам нужно сделать следующее: добавить точки останова, где это необходимо, следующим образом:

Щелкните левой кнопкой мыши по точке останова и заполните условия фильтра в Условии. Здесь нас интересует только 2q, поэтому заполните s.equals («2q»)

Точка останова журнала
Этот тип точки останова не остановит программу, а выведет информацию журнала, которую мы хотим вывести, а затем продолжит выполнение. Конкретная операция заключается в следующем: также щелкните левой кнопкой мыши в точке останова и снимите флажок «Приостановить» во всплывающем диалоговом окне.

Во всплывающей панели управления выберите «Журнал оцененного выражения», а затем введите информацию журнала, которую вы хотите вывести, следующим образом:

Результат будет выведен при обнаружении точки останова во время отладки следующим образом:

Ненормальная точка останова
Так называемая точка останова исключения состоит в том, что в процессе отладки, когда происходит исключение (можно указать исключение определенного типа), оно немедленно обнаружит место, где было сгенерировано исключение. Например, при отладке исключений мы уделяем большое внимание исключениям времени выполнения и надеемся найти любые исключения во время выполнения. Затем мы можем использовать этот тип исключения в данный момент. Прежде чем переходить в оперативный режим, отладка с помощью точек прерывания исключения очень полезна для уменьшения случаев возникновения в формальной среде. Вероятность крушения. Конкретная операция выглядит следующим образом: В пункте меню «Выполнить» выберите «Просмотр точек останова» (вы также можете щелкнуть на панели управления точками останова).

Источник

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