Badanie ruchu w sieci przy użyciu inspektora sieci

Inspektor sieci wyświetla na osi czasu aktywność sieciową, pokazując wysyłanie i odbieranie danych. Inspektor sieci pozwala sprawdzić, jak i kiedy aplikacja przesyła dane i odpowiednio optymalizuje bazowy kod.

Aby otworzyć inspektora sieci, wykonaj te czynności:

  1. Na pasku nawigacyjnym w Android Studio wybierz Widok > Okna narzędzi > Sprawdzanie aplikacji. Po automatycznym połączeniu okresu inspekcji aplikacji i proces w aplikacji, wybierz na kartach Inspektor sieci.
    • Jeśli okno inspekcji aplikacji nie łączy się z procesem aplikacji automatycznie, może być konieczne ręczne wybranie procesu w aplikacji.
  2. Wybierz z ekranu urządzenia i aplikacji proces, który chcesz sprawdzić Okno Sprawdzania aplikacji.

Omówienie Inspektora sieci

U góry okna Inspektora sieci zobaczysz oś czasu zdarzenia. Kliknij i przeciągnij, aby wybrać fragment osi czasu i zbadać natężenie ruchu.

Okno Inspektora sieci
Rysunek 1. Okno Inspektora sieci.

Wykres czasu w okienku szczegółów pomoże Ci zidentyfikować skuteczność które mogą powodować problemy. Początek żółtej sekcji odpowiada pierwszy bajt wysyłanego żądania. Początek niebieskiej sekcji odpowiada do pierwszego bajtu odebranej odpowiedzi. Koniec niebieskiej sekcji odpowiada ostatniemu bajtowi otrzymanej odpowiedzi.

W panelu pod osią czasu wybierz jedną z Na kolejnych kartach znajdziesz więcej szczegółów na temat aktywności sieci w okresie wybrany fragment osi czasu:

  • Widok połączenia: zawiera listę plików, które zostały wysłane lub odebrane podczas wybrany fragment osi czasu we wszystkich wątkach procesora aplikacji. Dla: można skontrolować rozmiar, typ, stan i transmisję czas trwania kampanii. Aby posortować tę listę, kliknij dowolny nagłówek kolumny. Dostępne opcje można też zapoznać się ze szczegółowym podziałem na wybrany fragment osi czasu, które pokazują, kiedy poszczególne pliki zostały wysłane lub odebrane.
  • Widok wątku: wyświetla aktywność sieciową każdego procesora aplikacji. . Jak widać na ilustracji 2, ten widok pozwala sprawdzić, są odpowiedzialne za każde żądanie sieciowe.

    Sprawdzanie żądań sieciowych według wątku aplikacji w widoku wątku
    Rysunek 2. Sprawdź żądania sieciowe według wątku aplikacji w Widok wątku.
  • Widok reguł: reguły pomagają testować działanie aplikacji po napotkaniu odpowiedzi o różnych kodach stanu, nagłówkach i treści. Gdy tworzysz nowej reguły, nazwij ją i podaj informacje o pochodzeniu reguły odpowiedź, którą chcesz przechwycić, w podsekcji Origin. W Odpowiedź, możesz określić, gdzie i jak modyfikować . Możesz na przykład skonfigurować regułę tak, aby uruchamiała się w odpowiedziach z tagiem konkretnego kodu stanu, a także go modyfikować. W Reguły nagłówka i Reguły treści – tworzy reguły podrzędne, które dodają lub modyfikować nagłówki lub treść odpowiedzi. Reguły są stosowane w kolejności, w jakiej na naszej liście. Aby wybrać regułę, którą chcesz włączyć lub wyłączyć, zaznacz Aktywny.

    Okienki Reguły inspektora sieci i Szczegóły reguł
    Rysunek 3. Reguły i szczegóły reguły inspektora sieci panele informacyjne.

W widoku połączenia lub widoku wątku kliknij nazwę prośby, aby: sprawdzać szczegółowe informacje o wysyłanych lub odbieranych danych. Klikaj karty, aby wyświetlania nagłówka i treści odpowiedzi, nagłówka i treści żądania lub stosu wywołań.

Na kartach Response (Odpowiedź) i Request (Żądanie) kliknij link View Parsed (Wyświetl przeanalizowane), aby wyświetlać sformatowany tekst. Kliknij link Wyświetl źródło, aby wyświetlić nieprzetworzony tekst.

Przełączanie między zwykłym i sformatowanym tekstem
Rysunek 4. Przełączaj między zwykłym a sformatowanym tekstem za pomocą klikając odpowiedni link.

Oprócz wyświetlania żądań sieci dla HttpsURLConnection, sieć Inspektor obsługuje też funkcję OkHttp. niektóre biblioteki sieciowe innych firm, np. Retrofit, użyj OkHttp więc inspektor sieci umożliwia sprawdzenie ich aktywności sieciowej. Przykładowa aplikacja Now w Androidzie korzysta z usługi OkHttp do operacji sieciowych i jest to dobre miejsce, aby ją zobaczyć działania.

Jeśli używasz tagu HttpsURLConnection API, zobaczysz tylko nagłówki na karcie Request (Żądanie), które zostały umieszczone w kodzie za pomocą setRequestProperty zgodnie z tym przykładem:

Kotlin

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")

Java

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

Rozwiązywanie problemów z połączeniem sieciowym

Jeśli inspektor sieci wykryje wartości ruchu, ale nie może zidentyfikować żadnych obsługiwane żądania sieciowe, pojawia się następujący komunikat o błędzie:

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

Obecnie inspektor sieci obsługuje tylko HttpsURLConnection i biblioteki OkHttp do sieci połączeń. Jeśli aplikacja używa innej biblioteki połączeń sieciowych, możesz nie mieć pod kątem aktywności w sieci w inspektorze sieci. Jeśli ten komunikat o błędzie został wyświetlony, ale Twoja aplikacja używa pakietu HttpsURLConnection lub OkHttp, zgłoś błąd lub wyszukaj problem urządzenie śledzące możesz uwzględnić swoją opinię w istniejącym raporcie dotyczącym Twojego problemu. Ty Możesz też skorzystać z tych zasobów, by poprosić o pomoc dotyczącą dodatkowych bibliotek.