Nachdem ich zum x-ten Mal die Meldung „Wenig Speicherplatz“ auf meinem Nexus One erhalten hatte, ging ich zum Bildschirm „Anwendungen verwalten“, um Anwendungen zu deinstallieren, die ich in letzter Zeit nicht verwendet hatte. Ich wartete, bis der Bildschirm vollständig geladen war, bevor ich etwas unternahm. Es sagte, ich hätte 27 MB frei auf meinem internen Telefonspeicher. Ich klickte dann auf die App „Fooducate“, die ich installiert hatte. Es sagte, es würde ungefähr 4,2 MB meines internen Speichers für die Anwendung verwenden, plus ungefähr 12 KB an Daten. Es war auf dem Telefon installiert und das Verschieben auf die SD-Karte war keine Option. Ich habe auf "Deinstallieren" geklickt und der Deinstallationsvorgang wurde ausgeführt. Danach behauptete der Bildschirm „Anwendungen verwalten“, ich hätte noch 28 MB übrig.
Was ist mit den anderen 3,2 MB passiert? Ich denke, wenn Sie 27 MB haben und ein Programm deinstallieren, das 4,2 MB Speicherplatz verwendet, haben Sie dann 31,2 MB freien Speicherplatz.
Aktualisieren:
Nachdem ich mein Telefon aus- und wieder eingeschaltet und dann zum Bildschirm „Anwendung verwalten“ gegangen bin, werden jetzt 32 MB frei angezeigt, was eher dem entspricht, was ich erwarten würde. Ich denke, meine überarbeitete Frage lautet: Warum war der Speicherplatz nicht sofort verfügbar, und kann ich etwas tun, um ihn freizugeben, ohne die Stromversorgung auszuschalten?
Nach dem, was ich Ihrem Szenario entnehmen kann, scheint der Schuldige der Dalvik-Cache des Androiden zu sein.
Zitat aus einem Thread in xda-Foren: -
Wenn Android gestartet wird, durchsucht die DalvikVM alle Ihre Anwendungen (.apk-Dateien) und Frameworks und erstellt einen Baum von Abhängigkeiten. Es verwendet diesen Abhängigkeitsbaum, um den Bytecode für jede Anwendung zu optimieren, und speichert ihn im Dalvik-Cache. Die Anwendungen werden dann unter Verwendung des optimierten Bytecodes ausgeführt. Aus diesem Grund dauert es manchmal sehr lange, wenn Sie ein neues ROM installieren, um zum ersten Mal zu booten. Jedes Mal, wenn sich eine Anwendung (oder Framework-Bibliothek) ändert, wird sie neu optimiert und der Cache aktualisiert.
und es scheint, dass bei jedem Neustart der Dalvik-Cache neu optimiert wird.
Aus eigener Erfahrung ist mir auch aufgefallen, dass auch ohne Neustart nach kurzer Wartezeit der Plattenplatz wieder frei geworden wäre. Meine Theorie ist also, dass das Android-Betriebssystem Schreibvorgänge rechtzeitig auf den internen Speicher verteilt, um die Reaktionsfähigkeit des Geräts zu verbessern.
Aber ich bin mir immer noch nicht sicher, ob der Speicher gerade benötigt wird, um eine neue Anwendung zu installieren, ob er für diesen Zweck freigegeben würde oder ob die Meldung "Wenig Speicher" erneut angezeigt würde, bis die gelöschte App ihren Speicher freigibt.
jmbouffard
Chris Fletcher
jmbouffard