Das Tool für Netzwerkverkehr wurde eingestellt. Wenn Sie Android Studio 3.0 oder höher verwenden, sollten Sie mit dem Netzwerk-Profiler untersuchen, wie und wann Ihre App Daten über ein Netzwerk überträgt.
Im vorherigen Abschnitt haben Sie Ihren App-Code mit Traffic-IDs versehen, Tests durchgeführt und Daten erhoben. In dieser Lektion erfahren Sie, wie Sie sich die von Ihnen erfassten Netzwerkverkehrsdaten ansehen, und leitet Sie zu Maßnahmen zur Verbesserung der Netzwerkleistung Ihrer Anwendung und zur Verringerung des Stromverbrauchs weiter.
App-Netzwerktraffic analysieren
Die effiziente Nutzung von Netzwerkressourcen durch eine Anwendung zeichnet sich durch längere Zeiträume aus, in denen die Netzwerkhardware nicht genutzt wird. Auf Mobilgeräten fallen erhebliche Kosten an, wenn die Funkschnittstelle zum Senden oder Empfangen von Daten gestartet oder die Mobilfunkverbindung über einen längeren Zeitraum hinweg aktiv bleibt. Wenn Ihre Anwendung effizient auf das Netzwerk zugreift, sollten Sie sehen, dass die Kommunikation über das Netzwerk eng beieinander ist und über die Zeiträume verteilt ist, in denen die Anwendung keine Verbindungsanfragen sendet.
Abbildung 1 zeigt den vom Netzwerkverkehr-Tool gemessenen suboptimalen Netzwerkverkehr von einer Anwendung. Die App stellt häufig Netzwerkanfragen. Dieser Verkehr hat kurze Ruhephasen, in denen das Radio in einen Standby-Modus mit geringem Stromverbrauch umschalten könnte. Durch das Verhalten dieser App beim Netzwerkzugriff wird die Funkschnittstelle wahrscheinlich über einen längeren Zeitraum eingeschaltet, was den Akku ineffizient macht.
Abbildung 2 zeigt ein optimales Netzwerktraffic-Muster. Die Anwendung sendet Netzwerkanfragen in Bursts, getrennt durch längere Zeiträume ohne Datenverkehr, in denen das Radio in den Standby-Modus wechseln kann. Dieses Diagramm zeigt den gleichen Arbeitsaufwand wie in Abbildung 1, aber die Anfragen wurden verschoben und gruppiert, damit sich die Funkanlage die meiste Zeit im Standby-Modus befindet.
Wenn der Netzwerkverkehr für Ihre Anwendung dem Diagramm in Abbildung 2 ähnelt, ist alles in Ordnung. Glückwunsch! Wenn Sie die Netzwerkeffizienz weiter steigern möchten, sehen Sie sich die unter Allgemeine Netzwerknutzung optimieren beschriebenen Techniken an.
Wenn der Netzwerkverkehr für Ihre Anwendung eher dem Diagramm in Abbildung 1 entspricht, ist es an der Zeit, genauer zu untersuchen, wie Ihre Anwendung auf das Netzwerk zugreift. Sie sollten damit beginnen, zu analysieren, welche Arten von Netzwerkverkehr Ihre Anwendung generiert.
Arten des Netzwerktraffics analysieren
Wenn Sie sich den von Ihrer Anwendung generierten Netzwerktraffic ansehen, müssen Sie die Quelle des Traffics verstehen, damit Sie ihn entsprechend optimieren können. Eine häufige Netzwerkaktivität, die von deiner App generiert wird, kann völlig angemessen sein, wenn sie auf Nutzeraktionen reagiert. Wenn die App nicht im Vordergrund ausgeführt wird oder das Gerät sich in einer Tasche oder Handtasche befindet, ist sie möglicherweise völlig unangemessen. In diesem Abschnitt wird erläutert, wie Sie die Arten von Netzwerkverkehr analysieren, die von Ihrer Anwendung generiert werden, und Maßnahmen zur Leistungsverbesserung erhalten.
In der vorherigen Lektion haben Sie Ihren App-Code für verschiedene Traffic-Typen getaggt und das Tool „Network Traffic“ verwendet, um Daten in Ihrer App zu erfassen und ein Aktivitätsdiagramm zu erstellen (siehe Abbildung 3).
Im Tool „Netzwerktraffic“ wird der Traffic basierend auf den Tags gekennzeichnet, die Sie in der vorherigen Lektion erstellt haben. Die Farben basieren auf den Traffic-Typ-Konstanten, die Sie im App-Code definiert haben. Sehen Sie im Code Ihrer App nach, welche Konstanten für Nutzer-, App- oder vom Server initiierten Traffic stehen.
In den folgenden Abschnitten wird erläutert, wie Sie sich die verschiedenen Arten von Netzwerktraffic ansehen können, und Sie erhalten Empfehlungen zur Trafficoptimierung.
Vom Nutzer initiierten Netzwerktraffic analysieren
Vom Nutzer initiierte Netzwerkaktivitäten können effizient gruppiert werden, während ein Nutzer eine bestimmte Aktivität mit Ihrer Anwendung ausführt, oder ungleichmäßig verteilt werden, wenn der Nutzer zusätzliche Informationen anfordert, die die Anwendung abrufen muss. Ihr Ziel bei der Analyse des vom Nutzer initiierten Netzwerktraffics besteht darin, nach Mustern mit häufiger Netzwerknutzung im Zeitverlauf zu suchen und zu versuchen, Zeiträume zu erstellen oder zu vergrößern, in denen nicht auf das Netzwerk zugegriffen wird.
Die Unvorhersehbarkeit von Nutzeranfragen erschwert die Optimierung dieser Art der Netzwerknutzung in Ihrer Anwendung. Außerdem erwarten Nutzer schnelle Antworten, wenn sie eine Anwendung aktiv verwenden. Daher kann das Verzögern von Anfragen aus Effizienzgründen zu einer schlechten Nutzererfahrung führen. Im Allgemeinen sollten Sie dem Nutzer eine schnelle Reaktion gegenüber einer effizienten Netzwerknutzung Vorrang geben, wenn ein Nutzer direkt mit Ihrer Anwendung interagiert.
Hier sind einige Ansätze zur Optimierung des vom Nutzer initiierten Netzwerktraffics:
- Vorabruf von Netzwerkdaten – Wenn der Nutzer eine Aktion in Ihrer App ausführt, prognostiziert die App, welche Daten möglicherweise für die nächsten Nutzeraktionen benötigt werden, ruft sie im Bulk über eine einzelne Verbindung ab und speichert sie, bis der Nutzer sie anfordert.
- Auf Konnektivität prüfen oder auf Änderungen warten: Prüfen Sie die Netzwerkverbindung oder warten Sie auf Konnektivitätsänderungen, bevor Sie ein Update ausführen.
- Anzahl der Verbindungen reduzieren: Verwenden Sie Server-APIs, die das Herunterladen von Daten in Gruppen ermöglichen.
Von der App initiierten Netzwerktraffic analysieren
Durch Ihren App-Code initiierte Netzwerkaktivitäten können in der Regel einen erheblichen Einfluss auf die effiziente Nutzung der Netzwerkbandbreite haben. Achten Sie bei der Analyse der Netzwerkaktivität Ihrer App auf Zeiträume mit Inaktivität und ermitteln Sie, ob sie erhöht werden können. Wenn du Muster eines konsistenten Netzwerkzugriffs von deiner App aus siehst, suche nach Möglichkeiten, diese Zugriffe freizusetzen, damit die Gerätefunkschnittstelle in den Energiesparmodus wechseln kann.
Hier sind einige Ansätze zur Optimierung des von der App initiierten Netzwerktraffics:
Batch-Netzwerkanfragen und Planen von Netzwerkanfragen: Sie können die Netzwerkanfragen Ihrer Anwendung auf später verschieben, damit sie gemeinsam und zu einem Zeitpunkt verarbeitet werden können, was für die Akkulaufzeit vorteilhaft ist.
System erlauben, die Verbindung auf Konnektivität zu prüfen: Wenn du das System die Prüfung im Ruhezustand durchführen lässt, fallen keine Akkukosten für das Ausführen deiner App an, nur um nach einer Netzwerkverbindung zu suchen.
Vom Server initiierten Netzwerktraffic analysieren
Auch Netzwerkaktivitäten, die von Servern initiiert werden, die mit Ihrer Anwendung kommunizieren, sind in der Regel ein Bereich, in dem Sie die effiziente Nutzung der Netzwerkbandbreite erheblich beeinflussen können. Suchen Sie bei der Analyse der Netzwerkaktivität von Serververbindungen nach Zeiträumen mit Inaktivität und ermitteln Sie, ob sie erhöht werden können. Wenn Sie Muster konsistenter Netzwerkaktivitäten von Servern erkennen, suchen Sie nach Möglichkeiten, diese Aktivität so zu planen, dass die Gerätefunkschnittstelle in den Energiesparmodus wechseln kann.
So lässt sich der vom Server initiierte Netzwerktraffic optimieren:
- FCM für Serverupdates verwenden: Für serverseitige Updates empfiehlt sich die Verwendung des Firebase Cloud Messaging-Dienstes, statt Abfragen durchzuführen.