Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Gadgets & Lifestyle

Facebook-Apps für iPhone und iPad als Akkukiller [Update]

    Facebook-Apps für iPhone und iPad als Akkukiller [Update]
©iStockphoto.com/ymgerman

Die Facebook-App saugt bei iPhone und iPad den Akku leer – diesen Verdacht jedenfalls hatte t3n-Mitarbeiter Sebastian. Also hat er sich die App etwas genauer angesehen und eine interessante Entdeckung gemacht.

Ich hatte in letzter Zeit immer eine recht kurze Akkulaufzeit mit meinem iPhone 4S. Nach einem Arbeitstag hatte ich meist weniger als zehn Prozent übrig. Und das nach vielleicht zwölf Stunden, in denen ich es nicht wirklich häufig benutzt habe. Also hab ich mich mal auf die Suche nach der Ursache gemacht.

Als iOS-Entwickler war mir Instruments aus Apples Developer-Tools bekannt. Damit kann man in erster Linie seine selbst entwickelten Apps benchmarken und langsame Stellen oder auch Speicherlecks finden. Davon abgesehen kann man sich mit Instruments aber auch einfach die laufenden Prozesse des iPhones anzeigen lassen. Quasi so wie auf dem Mac mit dem Aktivitätsmonitor. Da gibt es dann eine hübsche Übersichtsseite. Dort fiel mir folgendes ins Auge:

AcitivityMonitorCPUTime
Die Prozesse mit der meisten CPU-Zeit.

Das ist eine Übersicht der Prozesse, die am meisten CPU-Zeit gebraucht haben. Im Klartext: die Apps, die am längsten gelaufen sind. Die oberen vier sind Systemprozesse (SpringBoard zeigt zum Beispiel die Homescreens an), ganz unten ist die Facebook-App. Die braucht also mehr als doppelt so lange wie DTMobileIS (das ist der Prozess auf dem iPhone, der Instruments mit den Daten versorgt). Das kam mir doch etwas viel vor. Ich gucke zwar häufig bei Facebook rein, aber so häufig dann auch wieder nicht.

Also hab ich das mal etwas länger laufen lassen und hab die Flags in Instruments beobachtet. Die Flags zeigen an, wann eine App gestartet, wann sie beendet wurde und was mich besonders interessierte: wann sie in den Hintergrund geschaltet und wann sie schlafen gelegt wurde.

Um das zu verstehen muss ich ein wenig ausholen: Wenn man eine App startet, dann läuft sie im Vordergrund. Klar. Drückt man nun den Homebutton, wird die App aber nicht beendet (terminiert), sondern nur schlafen gelegt. Schläft eine App, ist sie eingefroren und tut nichts (verbraucht keine CPU-Zeit), sie belegt allerdings Speicher. Das hat den Vorteil, dass sie sofort wieder da ist, wenn man sie wieder startet. Sie muss ja nicht gestartet werden, sondern wird nur schnell aufgetaut. Apps können im eingefrorenen Zustand auch komplett beendet werden (vom System, wenn der Speicher knapp wird, oder vom Benutzer über die Multitasking-Leiste, was aber eigentlich nicht nötig ist).

Seit iOS 4 gibt es nun aber Multitasking. Damit können Apps beim Beenden noch bis zu zehn Minuten im Hintergrund aktiv bleiben. Das ist zum Beispiel praktisch für Apps wie Instacast, die dann im Hintergrund noch die Podcasts zu Ende laden können (früher musste die App dafür dann halt geöffnet bleiben) oder auch für meine App Home Remind, die dann im Hintergrund noch die Erinnerung abschicken kann. Das ist auch nicht weiter schlimm und das System beendet diese Apps spätestens nach zehn Minuten (friert sie ein) oder eben, wenn die App meldet, dass sie fertig ist.

Das nutzen manche Apps natürlich aus. WhatsApp ist zum Beispiel so ein Kandidat. Wenn es vermeintlich beendet ist, läuft es genau diese zehn Minuten im Hintergrund weiter und empfängt dann direkt Nachrichten, anstatt sich diese über Apples Push-Benachrichtigungs-Server schicken zu lassen. Nach diesen zehn Minuten ist zwar Schluss, aber startet man innerhalb dieser Zeit WhatsApp erneut, beginnen sie von neuem.

Es kann also sein, dass WhatsApp durchgehend läuft, wenn man immer innerhalb dieser zehn Minuten eine neue Nachricht bekommt, dann WhatsApp öffnet und wieder schließt. Aber gut, so beliebt werden wohl die Wenigsten von uns sein, dass das wirklich ein Problem wird. Zusätzlich zu diesem Zehn-Minuten-Multitasking gibt es noch vier weitere Multitasking-Methoden. Allen gemein ist, dass sie zeitlich unbegrenzt sind. Und viel wichtiger: Diese werden von den Apps selbst festgelegt, doch dazu gleich mehr.

Diese vier Methoden sind:

  • Audio abspielen: so kann zum Beispiel Spotify im Hintergrund Musik spielen
  • Ortungsdienste nutzen: zum Beispiel für Navigations-Apps
  • Newsstand-Downloads: geht nur bei Newsstand-Apps, also neue Ausgaben im Hintergrund laden
  • VoIP-Nutzung: Apps wie Skype, über die man telefonieren kann, dürfen auch die ganze Zeit laufen und auf Anrufe warten

So, kommen wir nun zu unserem Fall zurück: Facebook. Wie gesagt: Die App legt fest, was sie davon nutzt. Facebook nutzt davon gleich zwei: Audio und VoIP! VoIP, seit man auch über Facebook telefonieren kann, und wofür das Audio, weiß ich selbst nicht (Allerdings wird das schon irgendwie genutzt werden, denn Apple überprüft im Review-Prozess, ob diese Multitasking-Methoden ordnungsgemäß verwendet werden).

Das heißt, die Facebook-App kann prinzipiell die ganze Zeit im Hintergrund aktiv sein. Laut Instruments ist sie das nicht, zumindest nicht die ganze Zeit. Anhand der Flags kann man sehen, dass sie alle paar Minuten kurz aufwacht, etwa zehn Sekunden irgendwas macht und dann wieder schläft.

FacebookFlags

Ich hab das mal zwei Stunden laufen lassen und wie man in der Spalte ganz rechts an den Zeiten erkennen kann, wacht die Facebook-App in schöner Regelmäßigkeit auf, macht ziemlich genau zehn Sekunden etwas und schläft dann wieder. Und das den ganzen Tag lang. Das erklärt, warum sie Spitzenreiter beim CPU-Zeit-Verbrauch ist. Theoretisch könnte sie euch in dieser Zeit auch orten und das an Facebook schicken, allerdings habe ich dafür keine Indizien gefunden, also macht Facebook das wohl nicht.

Jetzt habe ich nach einer Einstellung gesucht, mit der man Facebook dieses Hintergrundleben abgewöhnen kann. Da dachte ich: Man kann doch den Chat innerhalb der App deaktivieren. Vielleicht läuft die App ja nur dauernd, weil sie auf Anrufe wartet. Hier das Ergebnis mit deaktiviertem Chat:

Chat aus

Wie man sieht, macht das überhaupt keinen Unterschied. Abgesehen davon hab ich keine weitere Einstellung gefunden, die daran irgendwas ändert.

Es gibt daher wohl nur zwei Lösungen zu diesem Problem: 1.: Facebook-App löschen oder 2.: die Facebook-App nach jeder Benutzung über die Multitasking-Leiste beenden (Home-Button doppelt schnell hintereinander drücken, dann erscheint unten eine Leiste, dort dann länger auf ein Symbol drücken bis sie anfangen zu wackeln und dann die Facebook-App mit dem kleinen Minus beenden). Jetzt ist sie wirklich beendet und wird auch nicht von allein gestartet. Vergisst man das Beenden natürlich einmal, läuft sie wieder wie gehabt im Hintergrund.

Ich halte mich momentan an Methode 2. Seitdem taucht die Facebook-App in der Liste der größten CPU-Zeit-Verbraucher nicht mehr auf und mein Akku hält wieder länger. Besser wäre es natürlich, wenn Facebook das in der App ändert. Ich sehe überhaupt keine Veranlassung, warum die alle paar Minuten laufen müsste. Probiert das doch mal bei euch aus und schreibt in die Kommentare, ob eure Akkulaufzeit davon irgendwie profitiert.

P.S.: Habe das auf zwei verschiedenen iPhones getestet, tritt also nicht nur auf meinem iPhone auf.

[Update 30. Mai 2013] Ich habe das jetzt nochmal mit dem Facebook Messenger getestet. Der verhält sich genauso. Läuft auch alle paar Minuten:

Facebook Messenger

Außerdem hab ich die Facebook-App auch auf dem iPad ausprobiert (den Messenger gibt’s ja nicht für’s iPad). Dort läuft er wie zu erwarten genauso oft im Hintergrund wie auf dem iPhone. Ist auch kein Wunder, ist ja schließlich die gleiche App für iPhone und iPad.

Facebook iPad

P.S. zum Update: Ich habe das jetzt mit der in diesem Kommentar beschriebenen Methode gemacht (da loggt das iPhone selbst die Aktivität und muss nicht live am Mac angeschlossen sein). Das ändert aber nichts am Ergebnis.[/Update]

Über den Autor

sebastian duevelSebastian Düvel ist iOS- und Mac-Entwickler und Blog-Urgestein – seinen Blog findet ihr unter blog.hagga.net. Hauptberuflich ist er Azubi zum Anwendungsentwickler bei t3n.

Weiterführende Links

Finde einen Job, den du liebst zum Thema iOS, Android

31 Reaktionen
luckyone
luckyone

@phomac:
Ja richtig, nur die Multitasking-Bedienung lässt sich ausschalten ...

Antworten
sanja
sanja

gibts den alternativen außer safari/browser?

Antworten
phomac
phomac

Das Multitasking lässt sich soweit ich weiß nicht aussschalten

Antworten
luckyone
luckyone

Suche vergeblich einen Edit-Button, irgendwie vergeblich. Blind ?

Antworten
luckyone
luckyone

Apropos Multitasking ausschalten. Das müsste doch über das Einstellungsmenu problemlos möglich sein in iOS6, wenn ich mich recht erinnere. Würde mich über einen Test mit deakt. Multitasking freuen.

Habe im übrigen auf bisher allen Ecosystems immer mal wieder PRobleme mit einer akku leersaugendenen Facebook-App. Auf Android war oftmals ein neues FB-Update nötig, manchmal jedoch erlediegte sich das alles wie von GEsitgerhand von selbst. Daher vermute ich, dass es oftmals FB-serverseitig initierte Test / Änderungen sind, die man dafür verantworlich machen kann.

Übrigens: Bis ich mal auf eine halbwegs ordentliche und mit Android-stantards zu vergelichenden BatteryMeter auf iOS gestoßen bin, hat ziemlich lange gedauert. Ein Witz und Frechheit von Apple solche Funktionen dem User entweder gar nciht oder nur äußerst aufwandsreich zur Verfügunge zu stellen ...

Antworten
DominikLux
DominikLux

Ja, und besonders auch die Google Maps App, die ich gern als Navi verwende

Antworten
Dirk

Apple wollte die Pseudomultitaskingfunktion endlich bereitstellen und hat es für die Entwickler extrem eingeschränkt, so dass es hauptsächlich für die Benutzer einfach benutzbar wird. Aber manche Entwickler sind wohl erfinderisch und haben einen kleinen Fehler im Pseudomultitasking ausgenutzt. Schade …
(Aber es ist noch immer besser als bei Android. Dort haben die Entwickler zu viel Freiheit.)

Antworten
tobias.klepp
tobias.klepp

Es macht einen Unterschied auch auf meinem iPhone 5. Die Apple-Hotline hat mir das Vorgehen (Beenden der Apps über die Task-Liste) auch empfohlen, um realistischere Akku-Laufzeiten zu haben. Unschön. Ich wünschte, Apple würde CPU-Killer automatisch beenden oder man könnte das Multitasking ausschalten.

Antworten
Dirk

Hinweis von Oliver Grunzke ist unsinnig. Er meint angeblich wegen dem Jailbreak so schlau zu sein, dass es mit Jailbreak alles einfacher wäre. Das ist falsch und vielleicht gelogen, falls er dies weiß.
Durch Jailbreak spart BatteryDoctorPro nicht wirklich Akku, weil es selbst immer wieder laufen muss um andere Apps zu beenden. Vielleicht spart es Akku, wenn es mehrere Apps beendet, aber nicht, wenn nur eine App am Akkuverlust schuldig ist. Vielleicht verbraucht BatteryDoctorPro weniger Strom als Facebook App, aber ich bezweifle, dass der Unterschied riesig ist. Zum Anderen sind durch ein Jailbreak die ehemals geschützten Ordner und App-Bereiche (genutzt in der Laufzeit) ungeschützt. D.h. man muss jeder App dann vertrauen, dass sie nicht z.B. wichtige Daten von der Banking-App stiehlt oder modifiziert. Wiederum gibt es bei Jailbreak so coole Effekte, die jeder haben muss, aber im Hintergrund unbedingt laufen müssen und deshalb der Akku nicht lange hält. BatteryDoctorPro kann dann diese "coole Erweiterung" dann nicht beenden. Zudem muss man den Jailbreak-Entwicklern vertrauen, dass sie keine Daten ausspionieren. Klar, das muss man auch nativ bei Apple, ABER wenn dort etwas bekannt wird, kann Apple zumindest Schadensersatz leisten. Jailbreak-Entwickler dagegen nicht, weil man entweder explizit das Risiko eingegangen ist oder die Jailbreak-Entwickler NICHT zur Rechenschaft gezogen werden können, weil man sie nicht findet.

So viel zum sehr schlauen Oliver! ;)

Antworten
Falk D.
Falk D.

Facebook hat ja Probleme mit dem mobile Web. Wenn der Akku leer ist sind andere mobilere Social-Webs nicht erreichbar und am PC macht eh jeder Facebook. Also berechnet die Facebook App ein paar Stellen von Pi.

Antworten
James
James

Am Besten Jailbreaken, welcher Idiot macht das bei dem restriktiven Müll den Apple geschaffen hat nicht?
Mit SBSettings kann man ein QuickMenu einblenden. Mittels Schalter "Remove Background" beendet der alle Apps auf einmal.

Antworten
Anna Winkler

Hallo Sebastian,

danke für diesen toll geschriebenen Artikel.
Mir ist das selber schon aufgefallen, wenn ich öfters in Facebook bin und Nachrichten geschrieben habe wurde der Akku immer weniger. Habe mich dann mal hingesetzt und nur Facebook laufen lassen für 10 Minuten und das erschreckene Ergebnis war, dass bei mir plötzlich mal eben 12% Akku weg waren. Wenn man so öfters im Facebook aktiv ist, muss man das Handy ja täglich 2-3 mal aufladen.
Schon eine "Frechheit", dass diese App soviel Akku ziehen kann. Da sollten sich die Entwickler aber noch einmal dran setzten und diese App verbessern.

Viele Grüße
Anna Winkler

Antworten
Neotrix
Neotrix

10min läuft die noch im Hintergrund? Wow! Das war mir neu.

Antworten
derdome
derdome

Sehr cooler und informativer Artikel. Bin dem Tipp mit der Facebook-App gefolgt und stelle fest, dass ich jetzt noch gut über 15% mehr Akku habe als sonst immer.

Antworten
frankkatzer
frankkatzer

so muss ein fundierter artikel aussehen!
danke für die info und das hintergrundwissen zu ios!

Antworten
Markus Väth

Auf meinem Blackberry Torch hatte ich das gleiche Problem: Ganz schnell wurde der Akku leergesaugt. Nachdem ich die Facebook-App deinstalliert hatte, normalisierte sich die Akku-Laufzeit wieder. Kann Zufall sein; der Augenschein spricht jedoch für den FB-Akku-Zusammenhang.

Antworten
Philipp

@Pascal:
Das ist unter iOS nicht möglich, da die Apps nach bestimmter Zeit schlafen gelegt werden. Ab dem Moment könnten sie keine Verbindung mehr zum Pushserver herstellen. Um zu verhindern, dass jede App im Hintergrund ständig selbst die Server kontaktiert hat Apple ja das Push-System überhaupt erst eingeführt :)

Antworten
Pascal192
Pascal192

Ich weiß nicht, ob Facebook auf iOS auch nicht die Pushfunktion des Systems benutzt, aber unter Android nutzt man die mqtt Bibliothek. Dafür muss regelmäßig ein ping an die Server gesendet werden, da es sich um eine langlebige Verbindung handelt.

Antworten
Philipp

@Gerry:
Ich bin mir nicht sicher was es für Facebook für einen Sinn machen sollte, die App ständig laufen zu lassen. Was sollen sie denn für Daten ausspähen? Ortungsdaten können es nicht sein, denn erstens wird das durch das Ortungssymbol angezeigt - das ist eine Systemfunktionalität und kann, soweit ich weiß, durch Facebook nicht einfach umgangen werden - und zweitens habe ich das Akku-Problem auch noch, obwohl ich die Ortungsdienste für die App deaktiviert habe.
Und ansonsten hat FB keinen Zugriff auf irgendwelche Daten auf dem Gerät, da die App sandboxed läuft.

@Dirk:
Du kannst dir am Mac selbst Xcode runterladen, damit sollte es dann machbar sein. Allerdings weiß ich nicht genau wie kompliziert das Erfassen der Daten ist. Ein Developer Account brauchst du dafür glaube ich nicht.

Antworten
Dirk
Dirk

Hallo. Kann man als Normalnutzer, diese CPU Time auch mal bekommen und nutzen? Evt. sind es ja noch mehr App's die Strom saugen!!

Gib mal eben Bescheid bitte.

Danke Dirk

Antworten
Gerry T.
Gerry T.

Danke für Eure sehr interessante Recherche. Hatte genau dieses Problem bereits vor etwa einem Jahr. Auf Nachfrage gab mir eine Mitarbeiterin der Telekom den Tipp, die Facebook-App manuell zu beenden - das Problem war schon bekannt. Allerdings glaube ich beim besten Willen nicht an einen Programmierfehler, sondern gehe stark von einem Ausspähen meiner Daten aus...

Antworten
Tom
Tom

Auf die Idee, dass die App den User ausspioniert, ist anscheinend noch niemwnd gekommen.

Antworten
Beo Bachter
Beo Bachter

Kann ich mich eigentlich drauf verlassen, dass oben rechts der kleine Pfeil für die Ortungsdienste angezeigt wird, wenn eine App im Hintergrund die Ortungsdienste nutzt?
Also im Umkehrschluss: Kein Ortungspfeil zu sehen: Keine App nutzt momentan Ortungsdienste?

Antworten
Philipp

Danke für den Tipp, dann werd ich auch mal drauf achten, dass ich die App immer wieder schließe.
Veröffentlichst du die Ergebnisse zum Messenger und den ausgeschalteten Notifications als Update hier im Artikel, oder wie bekommt man das am besten mit? ;)

Antworten
Sebastian Düvel

Den Messenger und wie sich die App verhält wenn man alle Notifications ausschaltet und ob das auf dem iPad genauso ist, werde ich noch testen.

Antworten
baumpaul
baumpaul

Gut zu wissen. Wie es sich mit dem Messenger verhält würde mich auch interessieren.

Antworten
Denis
Denis

Vielen Dank für den interessanten Beitrag, ich hab da mal 2 Fragen:
1. Wie verhält es sich mit dem Messenger? Diesen verwende ich bedeutend öfters.
2. Wenn du deinen Gastbeitrag sowohl auf dieser Seite als auch deinem Blog veröffentlichst, gibt es da nicht ein Problem mit Duplicate Content?

Antworten
Philip
Philip

Das ist sehr ärgerlich. Im Übrigen, da sieht man es mal wieder. Wir brauchen nicht mehr, sondern weniger Multitasking.

Antworten
marc.tissler
marc.tissler

das dürfte doch die wenigsten wunder, welche FB software ist denn nicht absoluter müll? :)

Antworten
Christian
Christian

Sehr interessanter Artikel. Danke!

Ps. Beobachte das selbe Problem bei der Facebook App. Mir wurde empfohlen, Facebook mobil über den Safari zu nutzen. Mir gefällt es jedoch nicht so...

Antworten
Cihan
Cihan

Ist mir auch schon aufgefallen, aber eher auf dem iPad! Früher hielt das iPad ohne Benutzung und aktivertem WLAN tagelang. Seit einigen Wochen ist das aber nicht mehr der Fall und ich habe mich immer gewundert!

Danke für den Tipp, ich werde es mal beobachten!

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen