Analizowanie danych o ruchu w sieci za pomocą narzędzia Ruch w sieci

Narzędzie Ruch w sieci zostało wycofane. Jeśli korzystasz z Androida Studio w wersji 3.0 lub nowszej, użyj programu profilującego sieci, aby sprawdzić, jak i kiedy aplikacja przesyła dane przez sieć.

W poprzedniej sekcji otagowano kod aplikacji za pomocą identyfikatorów ruchu oraz przeprowadzono testy i zebrane dane. Z tej lekcji dowiesz się, jak analizować zebrane dane o ruchu w sieci. Nauczysz się także, jak poprawić wydajność sieci i zmniejszyć zużycie energii.

Analizowanie ruchu w sieci aplikacji

Efektywne wykorzystanie zasobów sieciowych przez aplikację charakteryzuje się dłuższym okresem, gdy sprzęt sieciowy nie jest używany. Na urządzeniach mobilnych występuje znaczne koszty związane z uruchamianiem radia w celu wysyłania i odbierania danych oraz utrzymaniem działania nadajnika przez dłuższy czas. Jeśli aplikacja efektywnie uzyskuje dostęp do sieci, jej komunikacja w sieci powinna być silnie zgrupowana i oddalona o okresach, w których aplikacja nie wysyła żadnych żądań połączenia.

Rysunek 1 przedstawia nieoptymalny ruch w sieci z aplikacji określony przez narzędzie Ruch sieciowy. Aplikacja często wysyła żądania sieciowe. W ruchu jest niewiele okresów odpoczynku, podczas których radio może przejść w tryb gotowości i zużycie energii. Ta aplikacja uzyskuje dostęp do sieci przez dłuższy czas, co nie oszczędza baterii.

Rysunek 1. Aktywność w sieci z małą wydajnością baterii mierzona w aplikacji.

Rysunek 2 przedstawia optymalny wzorzec ruchu w sieci. Aplikacja wysyła żądania sieciowe partiami, rozdzielone długimi okresami braku ruchu, po których radio może przejść w tryb gotowości. Ten wykres przedstawia tę samą ilość pracy, co na ilustracji 1, ale żądania zostały przesunięte i pogrupowane, tak aby radio pozostawało w trybie gotowości przez większość czasu.

Rysunek 2. Oszczędzanie baterii – aktywność w sieci mierzona w aplikacji.

Jeśli ruch sieciowy w Twojej aplikacji wygląda podobnie do wykresu na Rysunku 2, nieźle Ci idzie. Gratulacje! Aby jeszcze bardziej zwiększyć wydajność sieci, zapoznaj się z technikami opisanymi w artykule Optymalizowanie ogólnego korzystania z sieci.

Jeśli ruch sieciowy związany z Twoją aplikacją wygląda bardziej jak wykres na ilustracji 1, czas przyjrzeć się bliżej, w jaki sposób aplikacja uzyskuje dostęp do sieci. Zacznij od przeanalizowania, jakiego typu ruchu w sieci generuje aplikacja.

Analizowanie typów ruchu w sieci

Gdy analizujesz ruch w sieci generowany przez aplikację, musisz poznać jego źródło, aby móc go odpowiednio zoptymalizować. Częsta aktywność w sieci generowana przez aplikację może być w pełni odpowiednia, jeśli reaguje na działania użytkownika, ale zupełnie nieodpowiednia, jeśli aplikacja nie działa na pierwszym planie albo gdy urządzenie znajduje się w kieszeni lub torebce. W tej sekcji omawiamy, jak analizować typy ruchu sieciowego generowanego przez Twoją aplikację, i podpowiadamy, jak możesz zwiększyć wydajność.

W poprzedniej lekcji otagowaliśmy kod aplikacji pod kątem różnych typów ruchu i za pomocą narzędzia Ruch w sieci zbieraliśmy dane o aplikacji i tworzyliśmy wykres aktywności, tak jak na rys. 3.

Rysunek 3. Ruch w sieci otagowany dla 3 kategorii: użytkownik, aplikacja i serwer.

Narzędzie Ruch w sieci określa kolor ruchu na podstawie tagów utworzonych w poprzedniej lekcji. Kolory zależą od stałych typów ruchu zdefiniowanych w kodzie aplikacji. Sprawdź kod aplikacji, aby sprawdzić, które stałe reprezentują ruch inicjowany przez użytkownika, aplikację czy serwer.

W sekcjach poniżej znajdziesz informacje o tym, jak analizować typy ruchu sieciowego, oraz zalecenia dotyczące optymalizacji ruchu.

Analizowanie ruchu w sieci inicjowanego przez użytkownika

Aktywność w sieci zainicjowana przez użytkownika może być skutecznie grupowana, gdy użytkownik wykonuje określone działanie w aplikacji, lub rozkładać się nierównomiernie, gdy użytkownik zażąda dodatkowych informacji. Celem analizy ruchu w sieci inicjowanego przez użytkownika jest znalezienie wzorców częstego korzystania z sieci w czasie i spróbowanie utworzenia lub zwiększenia liczby okresów, w których dostęp do sieci nie był możliwy.

Nieprzewidywalność żądań użytkowników utrudnia optymalizację tego rodzaju korzystania z sieci w aplikacji. Poza tym użytkownicy oczekują szybkich odpowiedzi, gdy aktywnie korzystają z aplikacji, więc opóźnienie żądań związanych z wydajnością może obniżyć ich komfort. Ogólnie rzecz biorąc, należy skupić się na szybkiej reakcji użytkownika, a nie na skutecznym korzystaniu z sieci w czasie, gdy użytkownik wchodzi w bezpośrednią interakcję z aplikacją.

Oto kilka metod optymalizacji ruchu w sieci inicjowanego przez użytkownika:

Analizowanie ruchu w sieci inicjowanego przez aplikację

Aktywność w sieci inicjowana przez kod aplikacji to zwykle obszar, w którym możesz wywrzeć znaczny wpływ na efektywne wykorzystanie przepustowości sieci. Analizując aktywność sieciową swojej aplikacji, szukaj okresów braku aktywności i określ, czy można je wydłużyć. Jeśli zauważysz wzorce stałego dostępu do sieci z aplikacji, poszukaj sposobów na rozmieszczenie tych uprawnień, by umożliwić radiostacji przełączenie się w tryb niskiego zużycia energii.

Oto kilka metod optymalizacji ruchu w sieci inicjowanego przez aplikację:

  • Zbiorczo i planuj żądania sieciowe – opóźniaj przesyłanie żądań sieciowych z aplikacji, aby były one przetwarzane razem i w czasie, który zapewni Ci korzystny czas pracy na baterii.

  • Zezwalaj systemowi na sprawdzanie połączenia – uniknij koszty baterii podczas uruchamiania aplikacji tylko po to, aby sprawdzić połączenie sieciowe, gdy możesz pozwolić systemowi na uruchomienie sprawdzania, gdy aplikacja jest uśpiona.

Analizowanie ruchu w sieci inicjowanego przez serwer

Aktywność w sieci inicjowana przez serwery komunikujące się z Twoją aplikacją to również obszar, w którym możesz mieć znaczący wpływ na efektywne wykorzystanie przepustowości sieci. Analizując aktywność sieciową związaną z połączeniami z serwerem, poszukaj okresów braku aktywności i ustal, czy można je wydłużyć. Jeśli dostrzegasz wzorce stałej aktywności sieciowej serwerów, poszukaj sposobów na oddzielenie tych aktywności, aby umożliwić radiowe urządzenia przełączenie się w tryb niskiego zużycia energii.

Oto podejście do optymalizacji ruchu w sieci inicjowanego przez serwer: