27 MB + 4,2 MB = 28 MB? Wo ist mein Raum hin?

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?

Antworten (2)

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.

Ich bin mir nicht sicher, welche Beziehung zwischen dem Dalvik-Cache und dem tatsächlichen Speicherplatz im internen Anwendungsspeicherbereich bestehen könnte. Nach dem, was ich gelesen habe, verwendet der Dalvik-Cache eine eigene Partition.
@jmbouffard, eine separate Partition klingt eher unpraktisch. Wie würde es bei Bedarf die Größe ändern? Wie würden Sie eine gute Anfangsgröße auswählen? Für mich wäre es viel sinnvoller, wenn es dieselbe Partition wie normales Android verwenden würde, damit der Benutzer Nachrichten wie Sie erhalten kann
Im Wiederherstellungsmodus meines Telefons gibt es eine Option „Cache-Partition löschen“, die ich mit dem Dalvik-Cache verknüpft habe. Aber ich habe andere Referenzen gesehen, die besagen, dass sich der Dalvik-Cache in /data der Hauptpartition befindet. Es könnte also von Gerät zu Gerät unterschiedlich sein oder ich habe die im Wiederherstellungsmodus erwähnte Cache-Partition falsch interpretiert.

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.