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 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.
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.
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:
- Pobieranie z wyprzedzeniem danych sieciowych – gdy użytkownik wykonuje działanie w aplikacji, aplikacja przewiduje, które dane będą potrzebne do wykonania następnych działań, pobiera je zbiorczo w ramach pojedynczego połączenia i blokuje je do czasu, aż użytkownik o nie poprosi.
- Sprawdzaj połączenie lub nasłuchuj zmian – przed przeprowadzeniem aktualizacji sprawdzaj połączenie sieciowe lub nasłuchuj zmian w połączeniach.
- Zmniejsz liczbę połączeń – używaj interfejsów API serwera, które umożliwiają pobieranie danych w zestawach.
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:
- Używanie FCM do aktualizacji serwera – rozważ używanie usługi Komunikacja w chmurze Firebase (FCM) do aktualizacji serwera zamiast sondowania.