Schlagwort-Archiv: Apps

Android und warum Task-Killer eine Lüge sind

Fast täglich erleben wir im Laden Kunden, die mit Ihren Android-Smartphones unzufrieden sind, da diese abstürzen, in Programmen hängen bleiben, Daten verlieren oder aber unkontrolliert neu starten.

Sind Android-Geräte deswegen schlechte Smartphones? Nein, ganz im Gegenteil, aber ihre Offenheit wird ihnen häufig zum Verhängnis, denn sie erlauben es dem Nutzer, sich mithilfe von Apps in die internen Systemabläufe einzumischen. Programme, die dies tun sind z.B: Advanced Task Manager, Task-Cleaner, Battery Saver, usw. Laut ihren Herstellern sorgen sie für mehr Performance, aufgeräumten Speicher und/oder erhöhen die Akkulaufzeit.

Um zu erklären, warum all das ein großer Haufen Mist und auch kein Glaubenskrieg ist, wie viele ihn propagieren, muss ich leider ein bisschen weiter ausholen und stellenweise auch ein wenig technisch werden. Wem das zu viel ist, der gehe einfach ganz nach unten zum Fazit und glaubt mir einfach…
Allen anderen beweise ich gern, warum es wahr ist, was ich im vorhergehenden Satz behauptet habe:

Speicherverwaltung in Android
Noch bevor die Entwicklung von Android begann, machten sich die Entwickler Gedanken, wie ein mobiles System auch nach vielen genutzten Anwendungen stabil und flüssig bedienbar bleibt, ohne dabei verschwenderisch mit den Ressourcen wie Prozessor oder aber dem Akkuverbrauch umzugehen. Dazu bedurfte es einer intelligenten Speicherverwaltung und das ganze sollte natürlich möglichst unbemerkt vom Benutzer und ohne Beeinträchtigung der Funktionalität der Anwendungen geschehen.

Man entschied sich dabei für ein Konzept, das sich grundlegend von dem der Desktop-Betriebssysteme (Windows, Mac OS, etc.) unterschied. Unter Windows etwa wird die Funktion des Systems fast jähzornig mit einer Fehlermeldung quittiert, sofern man die Grenzen des Arbeitsspeichers (RAM) erreicht: Man möge ungenutzte Anwendungen schließen, oder aber den Rechner am Besten gleich neu starten, heißt es da. Solch eine Meldung wird man unter Android wohl niemals zu sehen bekommen. Denn dort arbeitet im Hintergrund ein Dienst, der sämtliche Programme und Hintergrundanwendungen überwacht und steuert:
Sobald ein neues Programm (z.B. ein Spiel) gestartet werden soll, dafür jedoch nicht genug RAM zur Verfügung steht, beendet Android einfach ein anderes Programm, das am ehesten nicht mehr benötigt wird. Dabei geht Android ganz vereinfacht gesagt und beispielhaft nach folgenden Kriterien vor:

  1. Programme, die der Nutzer schon lange nicht mehr aufgerufen hat
  2. nicht fokussierte oder direkt genutzte Programme (Anwendung im Hintergrund)
  3. Teile eines momenten aktiven Programms, beginnend bei denen mit dem größten Speicherverbrauch
  4. und sehr, sehr viele andere!

Automatisches Abbild
Nun mag es grundsätzlich erstmal blöd klingen, wenn Anwendungen einfach beendet werden, obwohl dort vielleicht ungespeicherte Daten – wie etwa ein noch offenes Dokument oder ein geöffnetes Browser-Fenster – vorliegen.
Aber hierfür bietet das Betriebssystem jeder Anwendung vor dem Beenden die Möglichkeit, eine Art Abbild des aktuellen Status im RAM zu speichern und dieses beim nächsten Start wieder zu laden. Dafür sendet es dem Programm vor seiner Beendigung ein Signal, welches auf die baldige Schließung hinweist (ein sog. TERMINATE-Signal). Sofern das Programm also sauber programmiert ist, wird es seinen Zustand im Systemspeicher ablegen, bevor es durch das KILL-Signal vom System beendet und der Speicher im RAM freigegeben wird.
Der Benutzer wird beim nächsten Gebrauch eben dieser Anwedung keinerlei Unterschied bemerken, ob diese nun frisch aus dem Arbeitsspeicher (RAM) geladen oder aber ihr voriger Zustand aus dem Systemspeicher wiederhergestellt wird!

Task-Killer und was sie wirklich tun…
Hier zeigt sich nun das Problem von Apps wie “Taskiller”, die genau so etwas böses tun, wie ihr Name bereits es bereits fröhlich suggeriert: Sie „killen“ Programme – direkt und ohne Vorankündigung.
Dies hat zur Folge, dass die gekillten Anwendungen ihre Daten nicht sichern und anschließend den benutzten Speicher auch nicht freigeben können. Durch das so erzwungene Beenden kann somit Datenmüll im RAM zurückbleiben und so genau das Gegenteil von dem erhofften Ergebnis der Speicherbereinigung eintreten.
Und zu allem übel passiert ganz nebenbei auch noch folgendes: Durch das ständige Beenden und erneute Starten wird sowohl der Prozessor als auch das Android-System mehr beansprucht, was wiederum zu einem erhöhten Akkuverbrauch führt.
Fakt ist nämlich, dass sowohl Prozessor als auch Android-System im Endeffekt mehr Arbeit verrichten müssen und somit eine größere Aktivzeit (die Zeit, die sowohl Betriebssystem als auch Hardware ausgelastet sind) haben. UNGLAUBLICH? ABER WAHR!!!

Mehr Performance durch vollen Arbeitsspeicher
Aber warum ist denn der Arbeitsspeicher immer so voll, auch wenn das Smartphone kaum verwendet wird? Grundsätzlich ist es unter Linux (die Basis von Android) normal, dass der RAM immer ziemlich voll ist, da das System ungenutzte Bereiche zum Zwischenspeichern (dem sog. „cachen“) verwendet.
Android erstellt zum Beispiel auf „Verdacht“ Prozesse, die im Hintergrund quasi als leere Hülle bereitstehen und genutzt werden, sobald eine neue Anwendung gestartet wird. Dies bietet erhebliche Geschwindigkeitsvorteile, weil die meisten der vom gestarteten Prozess benötigten Daten schon in den RAM geladen wurden.

FAZIT
Es ist also prinzipiell egal, wieviele Anwendungen man gestartet hat, da Android immer nur die wichtigsten Programme imArbeitsspeicher (RAM) hält – alle anderen werden beendet und bei Bedarf – völlig unbemerkt vom Nutzer – wieder gestartet. Dies bringt erhebliche Performance-Vorteile, was zu einer schnelleren Bedienbarkeit führt.
Apps, die den Arbeitsspeicher “leeren”, haben in dieser Hinsicht also keinen Nutzen sondern bereiten unter Umständen sogar zusätzliche Probleme durch Datenverlust und erhöhten Akkuverbrauch.
Instabiles Verhalten, Fehlermeldungen, App-Hänger und unkontrollierte Neustarts sind meist auf solche „Saubermann“-Apps zurückzuführen!