Die Nexus-Geräte begeistern in den ersten Wochen und Monaten mit viel Leistung. Doch oft macht sich Ernüchterung breit: Das Handy war doch früher schneller? Wir zeigen Ihnen wie Sie Ihr Nexus wieder flott bekommen.
In Internet-Foren und auch dem Bugtracker zum Android-Projekt klagen zahlreiche Android-User, vornehmlich Besitzer von Nexus-Geräten wie dem Nexus 7 oder dem Galaxy Nexus, über Aussetzer des Systems (englisch „Lags“) [1][2]. In diesen Fällen bleibt Android regelrecht hängen, es lässt sich kaum mehr bedienen. Die Probleme treten auf, wenn der Speicher gut gefüllt ist und intensiv geschrieben wird, etwa bei der Installation von Apps oder während dem Download größerer Datenmengen.
Android trimmt falsch
Schuld daran ist eine mangelhafte Implementation des TRIM-Befehls [3], der eigentlich aus dem Dateisystem gelöschte und zu überschreibende Speicherbereiche auch dem Controller der eMMC-Speicherkarte übermitteln sollte. Weiß der Speicher-Controller nicht, in welche Bereiche er schreiben darf, muss er beim Betriebssystem anfragen, was Lese-Operationen aufhält und die Oberfläche des Handys zum Stocken bringt. Je weniger Speicher frei ist, desto länger dauert dieser Prozess, desto stärker werden die Aussetzer spürbar.
Schreib-/Leseperformance
Vor Reset | Nach Reset | |
---|---|---|
Sequentieller Zugriff [MByte/s] | ||
SEQ RD | 15,6 | 23,6 |
SEQ WR | 0,5 | 11,3 |
Random Access [Operationen pro Sekunde] | ||
RND RD | 1127,3 | 1780,6 |
RND WR | 15,2 | 131,3 |
Datenbankzugriffe [Operationen pro Sekunde} | ||
SQL Insert | 4,3 | 42,6 |
SQL Update | 10,8 | 52,8 |
SQL Delete | 22,3 | 54,1 |
Wer keine Angst vor dem Holzhammer hat, schafft mit einem kompletten Factory-Reset Abhilfe. Die Tabelle „Schreib-/Leseperformance“ weist Unterschiede wie Tag und Nacht in der Leistung des von uns getesteten Samsung Galaxy Nexus vor und nach dem Zurücksetzen auf. Die mit Androbench [4] ermittelten Zahlen liegen etwa beim sequentiellen Schreiben nach dem Reset 200-fach über dem zuvor gemessenen Wert. Auch die Leistung bei SQL-Zugriffen steigt deutlich an.
LagFix trimmt den Speicher
Wer aber nicht gleich das Handy zurücksetzen – und damit alle gespeicherten Daten verlieren – möchte, kann auf das Root-Tool Lagfix [5] setzen. Das kleine Werkzeug finden Sie als kostenlose, aber werbefinanzierte, App im Play Store.
Achten Sie vor dem Start von LagFix darauf, dass auf dem Handy genügend Speicher frei ist. Unter Einstellungen | Speicher sollten mindestens zwei bis drei GByte als „Verfügbar“ aufgeführt werden. ist weniger frei, identifizieren und löschen Sie mit dem My Device Storage Analyzer [6] die größten Brocken.
Von Haus aus führt LagFix den TRIM-Befehl auf den Partitionen /data und /cache aus. Auf Wunsch können Sie auch /system hinzufügen, was aber nicht unbedingt notwendig ist, da hier nicht permanent Daten geschrieben und gelöscht werden. De-/Installieren Sie aber viele Apps, sollten Sie auch diesen Speicherbereich trimmen lassen.
Ein Tipp auf Run! führt TRIM auf den ausgewählten Verzeichnissen aus. LagFix gibt während der Aktion keine Informationen zum Fortschritt aus. Auch, wenn Sie nichts sehen, LagFix arbeitet im Hintergrund: Warten Sie etwa fünf bis zehn Minuten ab, bis die App „Finished, hurray!“ meldet, abschließend sollten Sie neu starten.
Höhere Leistung nach Trimmen
Den Erfolg der Aktion messen Sie mit Androbench oder auch dem AnTuTu Benchmark [7]. Die Leistung bei Schreib-/Lesezugriffen eines zweiten Test-Nexus stieg von ungefähr 6,5 MByte/s (Schreiben) und 16,5 MByte/s (Lesen) auf etwa 10,0/23,5 MByte/s (Schreiben/Lesen) an.
Der TRIM-Effekt hält nicht unendlich lange an. In den nächsten Wochen wird das Handy im Zuge der Nutzung wieder TRIM-Balast anhäufen, so dass Sie LagFix erneut laufen lassen sollten. Alternativ dazu, kaufen Sie die LagFix-Premium [8]. Diese App verzichtet nicht nur auf Werbung, sondern bietet auch einen Automatismus, der Lagfix zu ausgewählten Zeiten im Hintergrund ausführt.
Mount mit Discard
Die meisten Linux-Systeme – Android baut ja auf dem Linux-Kernel auf – arbeiten ähnlich wie LagFix. Der TRIM-Befehl wird etwa ein mal am Tag ausgeführt. Alternativ dazu können Datenträger aber auch so eingebunden werden, dass TRIM automatisch nach jedem Schreib- oder Löschvorgang ausgeführt wird. Dafür zuständig ist die Mount-Option „Discard“.
Bei Android-Handys oder -Tablets mit Custom-ROMs wie CyanogenMod ist das ebenfalls umsetzbar, bei den CyanogenMod-ROMs für das Nexus-7-Tablet (Spitzname „Grouper“) haben die Entwickler von Haus aus diesen Weg gewählt [9]. Auf anderen Geräten mit CyanogenMod müssen Sie die entsprechende Option aber selber setzen. Dafür benötigen Sie das Android-SDK [10] und einen einfachen Texteditor.
Aktivieren Sie zum Setzen der Option das USB-Debugging in den Entwickleroptionen und legen Sie unter Root-Zugriff fest, dass Apps & ADB Root-Rechte erlangen dürfen. Erzeugen Sie dann auf Ihrem PC die Datei discard.txt
mit folgendem Inhalt.
#!/system/bin/sh mount -o remount,discard /data mount -o remount,discard /cache
Die anschließenden Befehle schieben die Datei auf das Handy und setzen die Rechte so, dass Android das Skript beim Booten ausführen darf. Am Ende führen Sie das Programm aus, die Partitionen /data und /cache werden somit gleich mit der Discard-Option neu eingebunden.
$ adb root $ adb shell mkdir /data/local/userinit.d $ adb push discard.txt /data/local/userinit.d/10discard $ adb shell chmod 750 /data/local/userinit.d/10discard $ adb shell /data/local/userinit.d/10discard
Die Discard-Option ist kein Allheilmittel: Aus einem erlahmten Nexus-Handy wird keine Rennsau mehr. Die Option sorgt aber dafür, dass ein gerade zurückgesetzten Handy nicht wieder lahm wird. Bedenken Sie aber auch, dass Discard sich leicht negativ auf die Performance auswirkt, da nun nach jedem Schreib-/Löschvorgang TRIM ausgeführt wird.
Fazit
Haben Sie das Gefühl, dass Ihr Nexus-Handy oder -Tablet früher einmal deutlich flotter war, sollten Sie am besten komplett neu starten und das Handy komplett zurücksetzen und danach darauf achten, dass etwa drei GByte Speicher immer frei bleiben. LagFix tut sein übriges, so dass das Handy von da an keine Aussetzer mehr kennt. Eine grundlegende Besserung ist aber bisher noch nicht veröffentlicht worden, hier gilt es auf Android 5.0 zu warten.