Inspektor sieci wyświetla na osi czasu aktywność w sieci w czasie rzeczywistym, pokazując dane wysłane i odebrane. Inspektor sieci pozwala sprawdzić, jak i kiedy aplikacja przesyła dane, i odpowiednio zoptymalizować kod bazowy.
Aby otworzyć Inspektora sieci, wykonaj te czynności:
- Na pasku nawigacyjnym Android Studio wybierz Widok >
Okna narzędzi >
Sprawdzanie aplikacji. Gdy okno inspekcji aplikacji automatycznie połączy się z procesem aplikacji, na kartach wybierz Inspektor sieci.
- Jeśli okno inspekcji aplikacji nie połączy się automatycznie z procesem aplikacji, być może trzeba będzie ręcznie wybrać proces aplikacji.
- W oknie Inspekcji aplikacji wybierz urządzenie i proces aplikacji, które chcesz sprawdzić.
Omówienie inspektora sieci
U góry okna Inspektora sieci możesz zobaczyć oś czasu zdarzenia. Kliknij i przeciągnij, aby zaznaczyć fragment osi czasu i sprawdzić natężenie ruchu.
Wykres czasu w panelu szczegółów pomoże Ci znaleźć miejsca, w których mogą występować problemy ze skutecznością. Początek żółtej sekcji odpowiada pierwszemu bajtowi wysyłanego żądania. Początek niebieskiej sekcji odpowiada pierwszemu bajtowi otrzymanej odpowiedzi. Koniec niebieskiej sekcji odpowiada ostatnim bajtowi otrzymanej odpowiedzi.
W panelu pod osią czasu wybierz jedną z poniższych kart, aby wyświetlić więcej informacji o aktywności sieci w wybranym fragmencie osi czasu:
- Widok połączenia: zawiera listę plików wysłanych lub odebranych w wybranym fragmencie osi czasu we wszystkich wątkach procesora aplikacji. W przypadku każdego żądania możesz sprawdzić rozmiar, typ, stan i czas trwania transmisji. Aby posortować tę listę, kliknij dowolny nagłówek kolumny. Możesz też wyświetlić szczegółowe zestawienie wybranego fragmentu osi czasu obejmujące informacje o tym, kiedy każdy plik został wysłany lub odebrany.
Widok wątku: wyświetla aktywność sieciową w każdym wątku procesora aplikacji. Jak widać na ilustracji 2, ten widok pozwala sprawdzić, które wątki są odpowiedzialne za każde żądanie sieciowe.
Widok reguł: reguły pomagają sprawdzać, jak zachowuje się aplikacja w przypadku napotkania odpowiedzi z różnymi kodami stanu, nagłówkami i treścią. Gdy tworzysz nową regułę, nadaj jej nazwę i w podsekcji Źródło podaj informacje o pochodzeniu odpowiedzi, którą chcesz przechwycić. W podsekcji Odpowiedź możesz określić, gdzie i jak chcesz zmodyfikować odpowiedź. Możesz na przykład ustawić regułę tak, aby była uruchamiana w przypadku odpowiedzi o konkretnym kodzie stanu, a także aby modyfikować ten kod stanu. W podsekcjach Reguły nagłówka i Reguły treści utwórz reguły podrzędne, które dodają lub modyfikują nagłówki lub treści odpowiedzi. Reguły są stosowane w kolejności, w jakiej są wymienione. Wybierz regułę, którą chcesz włączyć lub wyłączyć, zaznaczając obok niej pole Aktywna.
W widoku połączenia lub widoku wątku kliknij nazwę żądania, aby zobaczyć szczegółowe informacje o wysyłanych lub odbieranych danych. Klikaj karty, aby wyświetlić nagłówek i treść odpowiedzi, nagłówek i treść żądania lub stos wywołań.
Na kartach Response (Odpowiedź) i Request (Żądanie) kliknij link View Parsed (Wyświetl przeanalizowane), aby wyświetlić sformatowany tekst. Aby wyświetlić nieprzetworzony tekst, kliknij link Wyświetl źródło.
Oprócz wyświetlania żądań sieciowych HttpsURLConnection
Inspektor sieci obsługuje też OkHttp
.
Niektóre biblioteki sieciowe innych firm, np. Retrofit, używają wewnętrznie OkHttp
, więc Network Inspector umożliwia sprawdzanie ich aktywności sieciowej. Przykładowa aplikacja Now In na Androida wykorzystuje OkHttp
do operacji sieciowych i jest świetnym miejscem, aby zobaczyć, jak to wygląda w praktyce.
Jeśli korzystasz z interfejsu API HttpsURLConnection
, na karcie Żądanie zobaczysz tylko nagłówki dodane do kodu za pomocą metody setRequestProperty
, jak pokazano w tym przykładzie:
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 będzie w stanie zidentyfikować żadnych obsługiwanych żądań sieciowych, pojawi się ten 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 biblioteki HttpsURLConnection
i OkHttp
na potrzeby połączeń sieciowych. Jeśli Twoja aplikacja używa innej biblioteki połączeń sieciowych, możesz nie być w stanie wyświetlić aktywności w sieci w Inspektorze sieci. Jeśli pojawił się ten komunikat o błędzie, ale Twoja aplikacja korzysta z HttpsURLConnection
lub OkHttp
, zgłoś błąd albo wyszukaj narzędzie do śledzenia problemów, aby uwzględnić swoją opinię w istniejącym raporcie dotyczącym danego problemu. Możesz też użyć tych zasobów, aby poprosić o pomoc dotyczącą dodatkowych bibliotek.