Проверьте сетевой трафик с помощью Network Inspector.

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

Чтобы открыть Инспектор сети, выполните следующие действия:

  1. На панели навигации Android Studio выберите «Просмотр» > «Инструменты Windows» > «Проверка приложений» . После того как окно проверки приложения автоматически подключится к процессу приложения, выберите «Инспектор сети» на вкладках.
    • Если окно проверки приложения не подключается к процессу приложения автоматически, возможно, вам придется выбрать процесс приложения вручную.
  2. В окне «Проверка приложений» выберите устройство и процесс приложения, которые вы хотите проверить.

Обзор сетевого инспектора

В верхней части окна Network Inspector вы можете увидеть временную шкалу событий. Нажмите и перетащите, чтобы выбрать часть временной шкалы и проверить трафик.

Окно сетевого инспектора
Рисунок 1. Окно Network Inspector.

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

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

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

    Проверка сетевых запросов по потокам приложений в представлении потоков.
    Рисунок 2. Проверка сетевых запросов по потокам приложений в представлении потоков .
  • Представление «Правила» . Правила помогают проверить, как ваше приложение ведет себя при получении ответов с различными кодами состояния, заголовками и телами. Когда вы создаете новое правило, назовите свое новое правило и укажите информацию о происхождении ответа, который вы хотите перехватить, в подразделе «Происхождение» . В подразделе «Ответ» вы можете указать, где и как изменить ответ. Например, вы можете установить правило для выполнения ответов с определенным кодом состояния, а также изменить этот код состояния. В подразделах «Правила заголовка» и «Правила тела» создайте подправила, которые добавляют или изменяют заголовки или текст ответа. Правила применяются в том порядке, в котором они перечислены. Выберите, какое правило включить или отключить, установив флажок «Активно» рядом с правилом.

    Панели «Правила» и «Сведения о правилах» Network Inspector
    Рисунок 3. Панели «Правила» и «Сведения о правилах» Network Inspector.

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

На вкладках «Ответ» и «Запрос» нажмите ссылку «Просмотреть анализируемый» , чтобы отобразить форматированный текст. Нажмите ссылку «Просмотреть исходный код» , чтобы отобразить необработанный текст.

Переключение между необработанным текстом и форматированным текстом
Рисунок 4. Переключение между необработанным текстом и форматированным текстом, щелкнув соответствующую ссылку.

Помимо отображения сетевых запросов для HttpsURLConnection , Network Inspector также поддерживает OkHttp . Некоторые сторонние сетевые библиотеки, такие как Retrofit , используют OkHttp для внутреннего использования, поэтому Network Inspector позволяет проверять их сетевую активность. Пример приложения Now In Android использует OkHttp для своих сетевых операций, и это хорошее место, чтобы увидеть его в действии.

Если вы используете API HttpsURLConnection , на вкладке «Запрос» вы видите только заголовки, которые вы включаете в свой код с помощью метода setRequestProperty , как показано в следующем примере:

Котлин

val url = URL(MY_URL_EN)
val urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection
...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity")

Ява

URL url = new URL(MY_URL_EN);
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
//...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity");

Устранение неполадок с сетевым подключением

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

**Network Inspector Data Unavailable:** There is no information for the
  network traffic you've selected.

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