Google I/O: Tipps für akkuschonende Apps

Auf der Google-Konferenz gab der Entwickler Ilya Grigorik einige Ratschläge, wie mobile Anwendungen optimiert werden können.

In Pocket speichern vorlesen Druckansicht 43 Kommentare lesen
Lesezeit: 4 Min.

Nutzer sind mit ihrer App zufriedener, je schneller sie reagiert und je länger der Akku hält. Beides kann bei der Entwicklung des Programms deutlich beeinflusst werden. Dabei sollte der Entwickler auf die Besonderheiten der Datenübertragung von Mobiltelefonen achten. Meist, aber nicht immer hilft es, die Datenmenge zu reduzieren. Den geringsten Stromverbrauch haben Anfragen, die gar nicht gemacht werden, weshalb möglichst viel gecacht werden sollte.

In seinem Schlussvortrag auf der Google I/O berichtete Ilya Grigorik von einem Beispiel aus der Praxis: Eine frühere Version der Pandora-App entpuppte sich in einer Überprüfung durch einen Mobilfunknetzbetreiber als Stromfresser. Nur 0,2 Prozent der übertragenen Bytes waren für 46 Prozent des Energieverbrauchs verantwortlich: die Trackingbeacons. Das liegt im Design der üblichen Mobilfunkstandards UMTS und LTE, die auf die Übertragung größerer Datenmengen in kurzen Schüben (Bursts) optimiert sind.

Um ein Datenpaket zu senden, aktiviert ein 3G-Handy das Modem für mindestens 100 ms. Nach dem Ende der Datenübertragung wechselt das Modem in einen Zustand geringeren Energieverbrauchs (FACH), aber erst nach zehn Sekunden geht es in den Ruhezustand (idle). Alle fünf Sekunden einen Ping zu senden, wie es Grigorik bei CNN beobachtet hat, ist also der beste Weg, den Akku in kurzer Zeit leerzusaugen: Das Modem kommt nämlich nie in den Ruhezustand.

Trotzdem kann die Nutzung quasi in Echtzeit überwacht werden. Die zu sendenden Datenpakete sollten gesammelt und dann übertragen werden, wenn eine größere Datenmenge ansteht. Grigorik zu Folge ist Google Analytics entsprechend optimiert.

Auch Datensparen schont den Akku. Komprimierung, der Einsatz moderner Formate wie WebP für Bilder oder VP9 für Videos sowie intensives Caching sind die Freunde des Akkus. Nach dem Bildschirm ist nämlich das Modem der größte Energieverbraucher in den meisten Handys, und nicht der Prozessor.

Während Cachen bei Livestreams an Grenzen stößt, sieht das beim Streamen voraufgezeichneter Inhalte schon anders aus. Teilweise kann auch der Nutzer selbst mithelfen, etwa durch das gezielte Herunterladen von Daten im Voraus, wie es bei der Mobilversion von Google Maps möglich ist; über WLAN kann das auch die Mobilfunkrechnung entlasten.

Cachen erhöht auch die empfundene Geschwindigkeit der App. Müssen Daten übertragen werden, können unter anderem HTTP 2.0, SPDY, optimierte TCP Server Stacks helfen. Wichtig sind auch lange Timeouts für die TCP-Verbindung selbst. Selbst in einem HSPA-Netz beträgt der Netzwerk-Overhead bei der Latenz 0,6 bis 3,5 Sekunden. Und ein Nutzer, der kurz durch einen Tunnel fährt, ist vielleicht bald wieder da. Allzu häufig würden die Server zu aggressive TCP-Timeouts setzen, sagte Grigorik. Der Neuaufbau der Verbindung kostet dann Zeit und Strom. Die Mobilfunknetze selbst hätten daher TCP-Timeouts von 5 bis 30 Minuten Länge. Besonders unklug sei es, nach einer gewissen Zeit der Untätigkeit das Modem aufzuwecken um lediglich die TCP-Verbindung zu schließen.

Grundsätzlich ist weniger also mehr. Manchmal ist mehr aber auch weniger. Letzteres gilt bei sehr geringen Datenmengen. Unter einer gewissen Schwelle übertragen moderne Mobilfunknetze Daten nämlich in der so genannten Control Plane, wo sonst Steuerdaten zwischen Handy und Netz ausgetauscht werden. Im Vergleich zur normalen Datenübertragung ist dieser Kanal von einer hohen Latenz gekennzeichnet.

Google selbst musste diese Erfahrung mit der Such-App machen, die schon während der Eingabe Vorschläge unterbreiten soll. Dabei zeigte sich eine enorm hohe Latenz. Wie sich herausstellte, waren die einzelnen Zeichen eine so geringe Datenmenge, dass sie im Mobilfunknetz übe die Control Plane liefen. Als Google einfach einen Stoß leerer Bits dazupackte, verbesserte sich die Performance schlagartig. Die Schwelle, die eine Datenübertragung überschreiten muss, um nicht in der Control Plane zu landen variiert aber von Netz zu Netz und kann vom Netzbetreiber auch ohne Ankündigung geändert werden.

Für Entwickler stellt der US-Mobilfunker AT&T Informationen und Werkzeuge bereit, die stromsparendes Design unterstützen sollen. Grigorik selbst hat eine frühe Rohfassung seines Buches über High Performance Browser Networking kostenfrei bereit gestellt. (anw)