Давайте изучим инструмент отладки Facebook и узнаем, насколько легко проверять сетевые запросы.

Как разработчики Android, наша жизнь разработки часто включает интеграцию API или веб-сервисов при создании динамических приложений. Раньше было немного сложно найти ответы и отсутствующие поля в ответе API, потому что мы использовали журналы для проверки выходных данных или отладки приложения с помощью отладчика, доступного в Studio.

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

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

Проблема

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

Решение

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

Что такое стето?

Stetho - это простая библиотека от Facebook, с помощью которой мы можем легко отлаживать сетевые вызовы. Нет необходимости добавлять журналы во время разработки и удалять их при выпуске. Не нужно использовать отладчик. Просто выполнив три шага, мы сможем получать все сетевые вызовы внутри настольного браузера Chrome. Мы можем видеть все сетевые запросы, запускаемые из приложения, такие как задержка, размер кадра, последовательность запуска, параметры запроса, данные ответа и т. Д. Stetho имеет множество функций, помимо проверки сети, но в этой статье кратко обсуждается проверка сетевых запросов. Итак, приступим.

Шаг 1. Добавьте зависимость в build.gradle

implementation 'com.facebook.stetho:stetho:1.5.1'

Строго требуется только основная stetho зависимость. Однако мы также можем использовать один из сетевых помощников:

implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
                          OR
implementation 'com.facebook.stetho:stetho-urlconnection:1.5.1'

Вы также можете включить консоль JavaScript:

implementation 'com.facebook.stetho:stetho-js-rhino:1.5.1'

Шаг 2. Я инициализирую его в классе приложения с помощью одной строки кода.

Не забудьте зарегистрировать свой курс в AndroidManifest.xml:

Шаг 3. Включите проверку сети

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

 OkHttpClient.Builder()
    .addNetworkInterceptor(StethoInterceptor())
    .build()

Перехватчики - это мощный механизм, который может отслеживать, перезаписывать и повторять вызовы. Узнайте больше о перехватчиках.

Вот и все! Мы готовы проверять каждый сетевой вызов, поступающий из приложения. Легко, правда?

Следующий вопрос - где проверить вывод.

Как работать с Chrome DevTools для проверки

Интеграция с внешним интерфейсом Chrome DevTools реализована с использованием клиент-серверного протокола, который программное обеспечение Stetho предоставляет для вашего приложения. Теперь, когда базовая настройка завершена, нам нужно открыть Chrome и подключить устройство, чтобы проверить срабатывание запроса.

Откройте браузер Chrome и введите chrome://inspect в адресной строке. Затем нажмите Enter, и вы сможете увидеть свои устройства, подключенные, как показано на изображении ниже. Нажмите осмотреть, чтобы увидеть волшебство!

На приведенном выше экране вы можете увидеть мое подключенное устройство с начальным именем ONEPLUS. Здесь будут перечислены все устройства, которые подключены с включенной опцией отладки USB, а также список приложений на каждом устройстве со встроенным Stetho.

Итак, когда вы нажимаете проверить под названием приложения, происходит настоящая магия. Он открывает отдельное окно, которое дает обзор всех услуг в формате списка со всеми необходимыми деталями.

Вы также можете найти любые повторяющиеся запросы, которые легко увольняются, как и в случае с Log.

Когда вы нажимаете на любой отдельный запрос, он показывает три разных раздела: заголовки, предварительный просмотр и ответ. Чтобы просмотреть отдельный раздел, вы можете щелкнуть по каждому из них. Например, если вы нажмете «Заголовки», отобразится следующее:

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

Теперь давайте проверим раздел предварительного просмотра:

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

Раздел "Ответ" представляет собой данные в необработанном формате. Вы можете просто скопировать и вставить его куда угодно:

Если ваше устройство отключено, отображается запрос ниже:

Установите флажок для параметра Сохранить журнал, чтобы вы могли просматривать данные, даже если устройство отключено. В противном случае данные будут потеряны, и вам придется повторно подключить устройство и повторить попытку. Ознакомьтесь с образцом Stetho на GitHub от разработчиков Facebook для получения дополнительной информации.

Заключение

К настоящему времени вы должны иметь представление о том, насколько легко мы можем проверить сетевые пожары с помощью библиотеки Stetho. Это еще не все, что есть в Стето. Мы обсудили только проверку сети, но Stetho имеет гораздо больше функций, таких как визуализация баз данных SQLite, иерархия представления, приложение дампа, консоль JavaScript и т. Д. Мы можем изучить их в будущих статьях.

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