Akku-Killer: Welche iOS-Apps zu viel Strom verbrauchen

Seite 4: Hintergrundwissen

Inhaltsverzeichnis

Bevor Entwickler diese Ausnahmen in ihren Projekten nutzen können, müssen sie den gewünschten Hintergrund-Modus (UIBackgroundModes) in einer speziellen Datei namens Info.plist deklarieren (mehr dazu gleich). Insgesamt stellt Apple neun dieser Methoden zur Verfügung: Eine Übersicht der UIBackgroundModes finden Sie, wenn Sie unserem Webcode folgen.

Die Facebook-App beispielsweise gönnt sich gleich vier UIBackgroundModes – nämlich audio, voip, location und fetch – sowie zusätzlich einen bejahenden Eintrag im Schlüssel UIRequiresPersistentWiFi. Eben dieser sorgt dafür, dass das iOS-Gerät eine bestehende WLAN-Verbindung auch nach 30 Minuten Inaktivität nicht aufgibt. Der alleinstehende (Facebook) Messenger gibt sich mit den Schlüsseln voip und audio etwas genügsamer, machte sich aber dennoch – wie Facebook – etwa alle 10 bis 15 Minuten bemerkbar.

(Video-)Telefonie-Apps, die diese Dienste auch tatsächlich nutzen, registrieren sich in der Regel mit voip und audio. Problematisch ist an diesen Apps, dass sie eine beständige Netzwerk-Verbindung zur Gegenstelle aufrechterhalten müssen. Den Umweg über Apples Server, den Push-Nachrichten gehen (wodurch nur eine einzige, gemeinsam genutzte Verbindung aktiv ist), können Anbieter dieser Dienste nicht nehmen. Damit aber zumindest die Apps nicht permanent laufen müssen, überwacht iOS die Netzwerk-Sockets, die die jeweiligen Apps zur Kommunikation aufgebaut haben. Trifft ein Anruf ein, weckt das System die schlafende App und reicht die Anfrage nahtlos weiter. So lässt sich zumindest ein wenig Strom sparen – aktive Netzwerkverbindungen sind aber dennoch übermäßig teuer. In der Praxis ist also zu erwarten, dass Telefonie-Apps, die im Hintergrund laufen, als besonders stromfressend auffallen.

Im Panel „App Activity” verrät das Hilfsprogramm Instruments, wenn sich der Multitasking-Zustand einer App ändert.

Dennoch gibt es Unterschiede in den einzelnen Implementationen: Skype etwa meldet wie erwartet audio und voip an und meldet sich anschließend regelmäßig in der Prozessliste. Vorbildhaft ist dabei aber, dass Skype dem Nutzer die Wahl lässt und ein Abmelden nach einer bestimmten Zeitspanne ermöglicht – das System kappt die Netzwerkverbindung zu Skypes Servern, und anschließend verstummt die App und verbraucht keinen Strom mehr. Viber hingegen bietet keine entsprechende Option in den Einstellungen und wacht so lange in regelmäßigen Abständen auf, bis man die App manuell beendet. Den Mittelweg beschreitet ­Yahoos Messenger, der ein manuelles Abmelden ermöglicht. Dumm nur, dass das die App nicht daran hindert, sich trotzdem in regelmäßigen Abständen bemerkbar zu machen. Die App verbrauchte zwar überraschend wenig CPU-Ressourcen. Dennoch kann man sie als potenziellen Verbraucher einstufen, denn jede Aktivierung kostet Energie, und über einen längeren Zeitraum kommt einiges zusammen.

Leider bedeutet ein gesetzter UIBackgroundMode aber keineswegs automatisch, dass eine App diesen auch nutzt. Die Youtube-App beispielsweise ist notorisch dafür bekannt, keine Musik im Hintergrund abspielen zu können – wobei entsprechende Einträge in ihrer Info.plist darauf hinweisen, dass sie darauf eigentlich vorbereitet ist. Auch Dropbox konnten wir im Test nicht dazu bewegen, selbsttätig Inhalte zu synchronisieren, obwohl der fetch-Eintrag vorhanden ist. Was die App allerdings sehr wohl kann, ist im Hintergrund Audio abzuspielen und für ein paar Minuten im Hintergrund Fotos hochzuladen – auch wenn man beides nicht unbedingt von ihr erwarten würde.

Wer mehr als ein Gerät mit Instruments einsetzt, sollte bei Fehlermedlungen ins Target-Menü schauen und dort das Zielgerät überprüfen.

Gerne wachen auch regelmäßig Apps auf, die auf einem ­iPhone 5s M7-Daten auslesen. In der Regel bedienen sie sich dabei der relativ stromsparenden Methode „significant change location service“, die nur auf Geräten mit Mobilfunk-Chip zur Verfügung steht. Das Betriebssystem registriert den Wechsel einer Funkzelle und schließt daraus, dass sich der Nutzer mehr bewegt haben muss als bloß ein paar Meter. Apps, die sich in dieses Framework einklinken, bekommen ein Aufwach-Signal gesendet und pflegen die gesammelten Schritte in ihre Datenbank ein. Wer viele solcher Apps installiert hat – wenn auch nur zum Ausprobieren –, sollte sich bewusst sein, dass auf diese Art regelmäßig Hintergrundaktivität stattfindet, obwohl der GPS-Chip dabei vielleicht ruht. Diese Schnittstelle benutzen unter anderem auch die Google- und die Foursquare-App.

Für den Anwender bedeutet das Multitasking-Konzept, dass er sich ohne weiteres nie sicher sein kann, ob eine App noch läuft oder nicht. Selbst das manuelle Beenden einer App oder gar ein Neustart des Gerätes müssen nicht zwangsläufig bedeuten, dass anschließend im Hintergrund Ruhe herrscht.