Multitasking und der Ressourcenverbrauch

Fast-App Switching
Dies ist die Multitasking-Option, die zum Beispiel auch meine App nutzt und die demnächst wohl auf einen Großteil der
Apps zutreffen wird. Beim Fast-App Switching wird die App beim Druck auf den Homebutton nicht mehr komplett beendet, sondern quasi im Hintergrund "eingefroren" und
verbraucht in diesem Zustand weder Akku noch sonstige Ressourcen. Lediglich Arbeitsspeicher wird dabei belegt. Für
den User ergibt sich dadurch der Vorteil, dass er nach dem Beenden der
App (eigentlich wird sie nur noch in den Hintergrund verschoben) und nach
einer späteren Rückkehr sofort wieder an der Stelle landet, wo er sie
verlassen hat. Die Entwickler müssen hierfür keine besonderen Maßnahmen ergreifen. Die jeweiligen Apps müssen lediglich mithilfe des iPhone SDK (ja das heißt immer noch so) erstellt worden sein.
Background Location
Hierbei handelt es sich um die Multitasking-Option, die vor allem von Navi-Apps wie Navigon oder TomTom genutzt wird. Zu beachten ist dabei, dass diese Apps sowohl Background Location, als auch Fast-App Switching nutzen. Im Gegensatz zu Fast-App Switching wird bei Background Location sehr wohl Ressourcen verbraucht. Und das nicht zu knapp. Um zu verhindern, dass dies ungewollt geschieht, erscheint seit iOS 4 oben rechts in der Statusleiste auf dem iPhone-Display ein kleiner Pfeil, der Richtung Nordost zeigt. Ist dieser zu sehen, weiß man, dass im Hintergrund (und natürlich auch im Vordergrund) noch eine App läuft, die Location Services nutzt. Das passiert unter anderem bei den Navi-Apps wenn gerade aktiv eine Navigation läuft und man auf den Homebutton drückt. Somit werden auch noch Richtungsanweisungen gegeben, selbst wenn man zwischenzeitlich eine andere App öffnet. Beendet man stattdessen die laufende Navigation bevor man auf den Homebutton drückt, werden auch die Location Services beendet. Damit laufen sie auch im Hintergrund nicht mehr weiter und verbrauchen somit auch keine Ressourcen.
Background Audio
Background Audio wird in Zukunft von vielen Audio-Apps, wie z.B. Internet-Radios genutzt werden. Dabei spielt die App auch weiterhin Musik oder sonstige Audio-Inhalte ab, selbst wenn sie gar nicht mehr im Vordergrund aktiv ist und man andere Apps nutzt. Hierbei ist es relativ einfach zu erfahren, ob die App gerade Ressourcen verbraucht. Während die Musik aus dem Hintergrund gespielt wird, werden natürlich auch Ressourcen verbraucht. Teilweise zeigen die Apps in der Statusleiste dann auch den von der iPod-App bekannten Play-Button. Ist die Musik aus, befindet sich die App im selben Status wie beim Fast-App Switching, ist also so lange im Hintergrund eingefroren, bis man sie wieder in den Vordergrund holt.
VoIP
Apples bisheriger Ansatz um Multitasking zu umgehen, waren die sogenannten Push Notifications. Diese wurden unter anderem auch für VoIP-Apps wie Skype oder Fring verwendet. Mit der Multitasking-Option VoIP verhalten sich diese Apps nun wie bei einem ganz normalen Telefonanruf. Befindet man sich aktuell in einer App, wird man per Pop-Up darüber informiert, dass ein Anruf eingeht. Dabei hat man dann die Möglichkeit, den Anruf entgegenzunehmen, oder ihn zu ignorieren. Details zur Arbeitsweise hat Apple hier leider nicht bekannt gegeben. Verschiebt man die App in den Hintergrund, bleibt man trotzdem in dem jeweils genutzten Dienst online. Allerdings wird es sich nicht vermeiden lassen, dass die App von Zeit zu Zeit eine Onlineverbindung mit dem zugehörigen Server aufbaut, um den Status zu überprüfen. Dies ist unter anderem deswegen notwendig, weil das iOS eigenmächtig Hintergrund-Apps beenden kann, wenn der Arbeitsspeicher knapp wird. Von daher wird eine VoIP-App im Hintergrund zwangsweise ein gewisses Maß an Ressourcen verbrauchen.
Task Completion
Diese Multitasking-Option erlaubt es Apps, auch im Hintergrund bestimmte Aufgaben zu beenden, auch wenn die App nicht mehr im Vordergrund aktiv ist. Ein Beispiel hierfür wäre der Foto-Upload auf Flickr. Hat man mit einer früheren iOS-Version einen Foto-Upload angeschoben und die App anschließend beendet, wurde auch der Upload abgebrochen. In iOS 4 können solche Aufgaben nun im Hintergrund beendet werden. Nun könnte man meinen, dass dies der Akku-Killer schlechthin sein könnte, da eine solche Aufgabe im schlechtesten Fall mehrere Stunden dauern könnte. Hier hat Apple einen Riegel vorgeschoben. Als maximale Ausführungsdauer wurden nämlich 10 Minuten festgelegt. Ist die Aufgabe innerhalb dieser Zeit nicht erledigt, wird sie vom iOS automatisch abgebrochen.
Local Notifications
Hierbei handelt es sich um ein ähnliches Konzept wie bei den Push Notifications. Allerdings werden diese lokalen Benachrichtigungen nicht mehr von einem Server über das Internet an die jeweilige App gesendet, sondern werden lokal von der App selbst ausgelöst. Dies funktioniert natürlich nur, wenn sie im Hintergrund aktiv ist. So kann z.B. eine Fernsehzeitungs-App eine Erinnerung an eine Fernsehsendung anzeigen, die man vorher konfiguriert hat. Diese Aufgabe wird dann jedoch nicht mehr von der App selbst übernommen, sondern vom sogenannten Notifications Scheduler des iOS 4. Somit bleibt die App im Hintergrund im Fast-App Switching Status (verbraucht also keine Ressourcen) und wird erst durch den entsprechenden Button innerhalb der Notification wieder in den Vordergrund geholt.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Archetim am :
Ben am :
danke
Markus am :
spi am :
Kann das sein?
Oder gibt es ein Swap-File im Flash-Speicher?
Rhaegar am :
Timo am :
Super Zusammenfassung!
SN am :
Oder ist das tatsächlich so gering?
spi am :
Oolia am :
CHkittie am :
Bella am :
bad ice cream am :