Hintergrund: Arbeitsspeicher-Verwaltung unter Android

128MB Arbeitsspeicher - Zu wenig?
Neben der kurzen Akkulaufzeit wird von vielen Usern vor allem der kleine Arbeitsspeicher aller aktuellen Android-Phones bemängelt. Egal ob HTC Magic, Freerunner oder Samsung Galaxy – neben dem Google-Betriebssystem haben sie eines gemeinsam: 128 Megabyte von Anwendungen nutzbaren Arbeitsspeicher (RAM).
In Anbetracht aktueller Arbeitsspeichergrößen von über 4 Gigabyte bei modernen Desktop-Computern scheint dies vielen Nutzern deutlich zu wenig zu sein. Denn auch wenn es nur ein Smartphone ist, es sollen schließlich mehr als eine Hand voll Anwendungen parallel laufen – darunter solche Speicherfresser wie Webbrowser oder Spiele mit detaillierter Grafik.
Dass diese Fülle von Anwendungen nicht gleichzeitig im Speicher bleiben kann, ist klar. Viele User greifen daher zu Tools wie “Close Everything” oder “Taskiller” und beenden damit grundsätzlich alle Programme, die sie im Moment nicht benötigen.
Die Gründe, wieso dieses Verhalten nicht wirklich sinnvoll oder sogar kontraproduktiv ist, sollen in diesem Artikel nun etwas genauer erläutert werden.
Grundlagen
Da das Android-Betriebssystem gerade auf kleinen, mit eher schwacher Hardware ausgestatteten Geräten laufen sollte, mussten sich die Entwickler über die Ressourcenverwaltung besonders Gedanken machen.
Es bedurfte einer intelligenten Speicherverwaltung, sodass das System auch nach zig gestarteten Anwendungen noch stabil und flüssig bedienbar bleibt. Das ganze sollte natürlich möglichst unbemerkt vom Benutzer und ohne Beeinträchtigung der Funktionalität der Anwendungen geschehen.

Windows XP: "Nicht genügend virtueller Speicher"
Man entschied sich dabei für ein Konzept, das sich grundlegend von dem der Desktop-Betriebssysteme (Windows, MacOS, Desktop-Linux) unterschied. Während etwa unter Windows der Start einer Anwendung mit einer Fehlermeldung quittiert wird, sobald der Arbeitsspeicher voll ist, wird man eine solche Meldung unter Android praktisch nicht zu sehen bekommen.
Speicherverwaltung unter Android
Denn dort arbeitet im Hintergrund ein Dienst, der sämtliche Programme und Hintergrundanwendungen überwacht und steuert. Sobald ein neues Programm oder Spiel gestartet werden soll, dafür jedoch nicht genug Speicher zur Verfügung steht, beendet Android dafür ein anderes Programm. Dabei wählt es diejenigen Anwendungen, die am ehesten nicht mehr benötigt werden. Die grobe Reihenfolge ist dabei wie folgt:
- Programme im Hintergrund, die der Nutzer schon lange nicht mehr aufgerufen hat
- nicht direkt genutzte Services (etwa der MP3-Player im Hintergrund)
- Teile des momentan aktiven, sichtbaren Programms
Es werden jedoch noch viele weitere Parameter (etwa von einem Programm abhängende andere Programme) in Betracht gezogen, um möglichst selten Programme zu beenden, die vom User jetzt oder in naher Zukunft benötigt werden.
Anzeige:
Automatische Datensicherung
Nun mag es grundsätzlich erstmal unschön klingen, wenn Anwendungen einfach beendet werden, obwohl dort vielleicht ungespeicherte Daten (etwa eine noch nicht abgesendete SMS oder offene Browser-Fenster) vorliegen. Hierfür bietet das Betriebssystem jedoch jeder Anwendung vor dem Beenden die Möglichkeit, eine Art Abbild des aktuellen Status zu speichern und diesem beim nächsten Start wieder zu laden. Sofern das Programm also sauber programmiert ist, wird der User keinerlei Unterschied zwischen einer beendeten (und neu gestarteten) und einer laufenden (und aus dem Hintergrund geholten) Anwendung bemerken.
Hier zeigt sich nun das Problem von Apps wie “Taskiller”, die Anwendungen einfach “killen”: Es ist dabei nicht garantiert, dass die Anwendung alle ihre Daten sichern und anschließend den Speicher freigeben kann. Durch das erzwungene, nicht vom System gesteuerte Beenden können also Daten im Speicher zurückbleiben und damit genau das Gegenteil von dem erhofften Ergebnis eintreten.
Grundsätzlich ist es unter Linux (worauf Android ja basiert) normal, dass der Arbeitsspeicher immer recht voll ist, da das System ungenutzten Speicher zum zwischenspeichern (”cachen”) verwendet. Android erstellt zum Beispiel leere Prozesse, die im Hintergrund bereitstehen und genutzt werden, sobald ein neuer Anwendungsprozess gestartet wird.
Apps, die den Arbeitsspeicher “leeren”, haben in dieser Hinsicht also keinen Nutzen sondern bereiten unter Umständen sogar zusätzliche Probleme durch Datenverlust und Speicherlecks.
Sie können nur in Ausnahmen und gezielt eingesetzt sinnvoll sein, um etwa stark CPU-belastende Prozesse zu beenden.
Du kannst alle Antworten zu diesem Eintrag via RSS 2.0 Feed erfolgen. Du kannst einen Kommentar hinterlassen, oder einen Trackback von deiner eigenen Seite.
Danke!
Danke dir. Habe das im Forum schon gelesen aber das hast du gut zusammengefasst und auf den Punkt gebracht.
Schön geschrieben.
Samsung Galaxy I7500: Information zum Arbeitsspeicher…
Im Android-Hilfe Forum geht es im größten Thread um das Thema Akkuleistung Android-Hilfe und diesbezüglich auch um so genannten TaskKiller Apps.
Flo hat sich sehr schön dem Thema Arbeitsspeicher angenommen und klärt einiges auf.
Lesenswert!…
[...] [...]
[...] Am Schluss nun noch drei interessante Werte, danach schaltete sich das Galaxy beim Aktivieren der internen Kamera leider ab und wollte auch nicht mehr wirklich weiterarbeiten. Die Tests von WLAN, GPS, aktivem Internet etc. fehlen daher leider erstmal. Falls jemand mit besserer Elektronikausrüstung diesbezüglich selbst Versuche durchführen möchte, würde ich mich natürlich sehr freuen Den höchsten Stromverbrauch habe ich beim Login in’s Handynetz gemessen (nach Eingabe der PIN). Der Wert ist dabei auf das Dreifache des Normalverbrauchs (Homescreen) gestiegen. Der niedrigste Stromverbrauch ergab sich erwartungsgemäß im Airplane-Modus bei aktivierter Tastensperre. Hier war keinerlei Verbrauch mehr messbar, was sich auch mit bekannten Beobachtungen deckt (hiermit könnten wohl die von der Werbung versprochenen 450 Stunden Standby-Zeit erreicht werden). Ganz beachtlich ist hingegen der enorme Anstieg des Verbrauchs von über 40% bei voller CPU-Last (die beiden Säulen ganz rechts). Dieser Wert hängt natürlich sicher auch immer von der Art der Auslastung bzw. den Randbedingungen ab, doch wer Akkulaufzeit sparen will, sollte hier wohl am ehesten ansetzen (jedoch nicht unbedingt durch wahlloses Abschießen von Prozessen). [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] wirklich gefunden? Wie beendet man Programme oder ist das nicht vorgesehen? Nicht vorgesehen. Hintergrund: Arbeitsspeicher-Verwaltung unter Android | Androidig.de [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] Programme nun 1.6 (z.B. die neuen Copilot Versionen) Lies dir einfach mal diesen Artikel durch: Hintergrund: Arbeitsspeicher-Verwaltung unter Android | Androidig.de Der beschreibt eigentlich alles. Andriod ist kein Desktop OS und schon gar kein Windows. Es werden [...]
Akkulaufzeit auf dem Samsung Galaxy (Android) verlängert…
Einer der Hauptkritikpunkte am Galaxy bzw. eigentlich allen Android Telefonen ist die Akkulaufzeit. Auch der PalmPre ist da wie man hört nicht besser aufgestellt und das iphone schützt wohl nur seine religiöse Aura vor übermässiger Kritik.
Bei meinem…
[...] ist wochenlang im Dauereinsatz ohne Neustart… Hier noch was sehr interessantes zu diesem Thema: Arbeitsspeicher-Verwaltung unter Android [...]
[...] [...]
[...] warum soll man keinen taskkiller verwenden? Entscheide selbst: Hintergrund: Arbeitsspeicher-Verwaltung unter Android | Androidig.de __________________ HTC Hero Der Begriff "Vegetarier" kommt aus dem Indianischen [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] den Taskkiller. Punkt 3: Sagte ich schon, das du den Taskkiller vergessen sollst? Warum steht hier. Welches Hero hast du (Frei oder T-Mobile G2) und welche ROM-Version ist da drauf? Der [...]
[...] "intelligenten Taskmanager"? Ja, und ist sogar schon mit eingebaut im Betriebssystem Hintergrund: Arbeitsspeicher-Verwaltung unter Android | Androidig.de __________________ Motorola Milestone mit Android [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] [...]
[...] RAM Dienste Auslastung Zum 1000sten mal: http://www.androidig.de/index.php/20…unter-android/ lesen & verstehen Kurz zusammengefasst: 1. Nein, du brauchst keinen Taskkiller, der [...]
Die Erklärung leuchtet mir ein. Allerdings frage ich mich, warum sich ein 1 Tag altes HTC Hero in einem Zeitraum von vielleicht 2-3 Stunden (man will das neue Handy schließlich intensiv testen) rund 5x aufhängt und für Minuten nicht bedienbar ist. Wenn dass das Betriebssystem doch “so toll” steuert.
Mit dem Taskiller gehts auf jeden Fall.
Ich werden noch einige Tage damit spielen, aber zu 90% geht das Teil zurück.