Android "Interner Speicher" verwendet, aber nicht gemeldet

Als Besitzer eines Nexus One, auf dem Gingerbread läuft, kämpfe ich ständig darum, freien Speicherplatz im internen Speicher meines Telefons zu behalten. Heute ist mir etwas Merkwürdiges aufgefallen.

Unten auf dem Bildschirm „Anwendungen verwalten“ von Andorid wird ein Balkendiagramm angezeigt, das den „Internen Speicher“ des Telefons anzeigt (ich habe 29 MB frei). Wenn ich in eine App klicke, kann ich den Speicher für die „Anwendung“ und für die „Daten“ der App sehen. Die Anwendung wird in den meisten Fällen auf der SD-Karte gespeichert. Die "Daten" der Anwendung werden auf dem Telefon gespeichert (nehme ich an).

Was ich finde, ist, dass ich nicht das ganze Bild dessen sehe, was den internen Speicher belegt. Zum Beispiel habe ich 29 MB frei im internen Speicher. Die Angry Birds-App, die auf der SD-Karte gespeichert ist, ist 3,14 MB groß. Seine Daten sind 4.0K. Ich lösche dann die Angry Birds (keuch!) und mein kostenloser interner Speicher springt auf 31 MB. Es sieht also so aus, als wären 2 MB freigegeben, obwohl ich nur erwartet hätte, dass 4,0 KB freigegeben würden. Irgendeine Ahnung, was hier los ist?

Antworten (5)

Der Unterschied im freien Speicherplatz kann durch drei relevante Faktoren erklärt werden, die Ihnen am Ende einige irreführende Informationen über den tatsächlich auf Ihrem internen Speicher verfügbaren Speicherplatz geben können:

  1. Der Freiraum gemeldet

    Der am Ende des Bildschirms „Anwendungen verwalten“ angezeigte freie Speicherplatz wird auf MB gerundet und gibt Ihnen eine allgemeine Schätzung des freien Speicherplatzes basierend auf dem Moment, in dem Sie diesen Bildschirm geöffnet haben, und wird von Zeit zu Zeit aktualisiert (durch meine Tests ca jede Minute).

    Ich habe „gerundet“ erwähnt, denn wenn Sie auf das Bedienfeld „Speichereinstellungen“ zugreifen, erhalten Sie ein klares Bild des verfügbaren freien Speicherplatzes bis hinunter zu KB.

  2. Die App-Zuordnung

    Wie bereits von t0mm13b erwähnt, kann eine Anwendung vollständig auf die SD-Karte verschoben werden oder einen Teil davon zurücklassen. Dieses Problem hängt eher mit der Entwicklung der Anwendung selbst zusammen und es gibt keine Standardregeln, die befolgt werden müssen.

    Ich habe eine Übung mit "Angry Birds" durchgeführt, und während der Download 20 MB erwähnte, verbrauchte er nach der Installation 24 MB. Nach dem Verschieben auf die SD-Karte mit der Option für dieses Ende unter dem Bildschirm „Anwendungen verwalten“ blieben 1,85 MB auf dem internen Speicher zurück, plus 4 KB an Daten.

  3. Temporäre Systemdateien von anderen Anwendungen oder laufenden Diensten

    Während ich diese Antwort schrieb, variierte der gemeldete freie Speicherplatz zwischen 2 MB. Dies sagt uns, dass das Betriebssystem ständig Speicherplatz erstellt und freigibt, je nachdem, was läuft.

Es kann andere Faktoren geben, die die von Gingerbread verwendeten ext4-Dateisystemspezifikationen betreffen, aber ich glaube nicht, dass sie den Unterschied von 2 MB besser erklären.


Durch die drei oben genannten Punkte habe ich es geschafft, während ich eine Übung mit der von Ihnen erwähnten Anwendung mit einem Gerät mit einem Standard-Gingerbread-ROM durchführte, 2 MB Unterschied zu berücksichtigen, genau wie der von Ihnen erwähnte Speicherplatz.


Bestimmen Sie den belegten internen und externen Platz

Nach den Kommentaren, um genau zu wissen, wie viel eine App auf dem Gerät belegt, und um sie über externen oder internen Speicher anzeigen zu können, ist die genaueste Anwendung, die ich derzeit verwende, SanDisk Memory Zone von SanDisk Corp. kostenlos im Google Play Store erhältlich.

  1. Öffnen Sie die Anwendung
  2. Wählen Sie den gewünschten Speicher aus
  3. Überprüfen Sie die Details dazu

    ScanDisk Screenshots

Sehr gute Erklärung, wie immer, wenn Zuul es tut :) Würden Sie also sagen, dass es für den Endbenutzer eine Möglichkeit gibt, klar zu bestimmen, wie viel Speicherplatz von einer App verbraucht wird und wo - ohne "komplizierte Dinge" wie z. B. die Verwendung von Terminal-Apps? Da wir hier viele Fragen zum Thema „Wo ist mein Speicher hin?“ haben, wäre dies eine große Hilfe.
Ergänzend zu meinem vorherigen Kommentar, da ich das nicht deutlich gemacht habe: Ich meinte, festzustellen, wie viel Speicherplatz eine App im internen Speicher belegt und wie viel im externen Speicher – dh um zu sehen, wie viel und wo. Am besten ist es natürlich, wenn man all dies an einem Ort sehen könnte – im Gegensatz zu dem, was ich in meiner Antwort mit den grafischen Speicher-Explorern gezeigt habe.
Ich glaube, es sind die App-Dex-Dateien, die dazu neigen, hinter dem Telefonspeicher zu bleiben, wenn sie mit Standard-Apps2SD auf SD verschoben werden. Meine Theorie ist also, je weniger Dex-Dateien die App hat, desto effizienter wird App2SD.
Ich habe mich schon gefragt, ob der Dalvik-Cache bei der angegebenen "App-Zuteilung" enthalten ist. Gleiches gilt für temporäre Dateien, die über ihren Besitzer (UID) identifizierbar wären - dies würde jedoch einen vollständigen Dateisystemscan erfordern, der etwas Zeit und Ressourcen kosten würde, aber theoretisch bei Bedarf (über eine Schaltfläche zum erneuten Scannen) durchgeführt werden könnte.
Danke für die Ergänzung, @Zuul! Wie Sie diese App verwenden: Der Screenshot zeigt keine Aufteilung auf "Telefonspeicher". Unterscheidet es zwischen den Partitionen /dataund /data/data, was oft zu Verwirrung führt (wenn es sich um separate Partitionen handelt - was nicht für alle Geräte / Android-Versionen gilt)?

Als ich mich umgesehen habe, habe ich gerade ein paar nützliche Apps gefunden, die zeigen, wohin der Speicher geht.

Zum einen gibt es DiskUsage . Obwohl der Screenshot 1 hier die SD-Karte zeigt, macht das Video auf der Playstore-Seite der Apps deutlich, dass sie auch im internen Speicher verwendet werden kann – und sogar Links zur Apps-Seite, die Sie normalerweise über Menu -> Applications -> Manage Applications finden . Sie können jeden Bereich durchgehen und vergrößern/verkleinern, wie die Anmerkungen auf dem Screenshot zeigen.

Mein zweiter Kandidat ist Folder Size Chart , der mit einem anderen Design daherkommt und, wie in Screenshot 2 zu sehen , auch mit internem Speicher umgehen kann.

Festplattennutzung Ordnergrößentabelle

Diese beiden können definitiv helfen, "Lagerschweine" zu identifizieren. Es gibt viele andere im Playstore, die diesem Konzept folgen, aber die meisten sind auf die SD-Karte beschränkt oder erfordern Root-Zugriff.

Da das N1 eng mit dem HTC Incredible verwandt ist, könnten Sie auf dasselbe Problem mit wenig Speicherplatz stoßen, das Incredible-Benutzer (wie mich) plagt. Ich habe eine verwandte Frage gestellt, als ich anfing, das Schließen von Apps aufgrund von Speicherplatzmangel zu erzwingen, und später mein Verständnis der Datenpartitionen in einer Antwort auf eine Frage über die falsche Warnung „wenig Speicherplatz“ (interner Speicher) auf dem HTC Incredible gefestigt :

... mein App-Einstellungsbildschirm zeigt mir, wie hoch die /dataNutzung sein muss (nie annähernd voll, Zahlen stimmen /datamit der von DiskUsage gemeldeten Größe überein), obwohl meine Apps tatsächlich durch die viel kleinere eingeschränkt sind /data/data(wo mir oft der Platz ausgeht) ...

Ich stellte fest, dass die als „Interner Speicher“ gemeldete Nummer etwas völlig Unnützes meldete und nach allen Angaben nutzlos war, um mir bei der Verwaltung des App-Speichers zu helfen. Ich stimme Izzy in seiner Empfehlung von DiskUsage zu , ich fand es sehr hilfreich, besonders wenn es gerootet ist (mit Root-Berechtigungen kann es die /data/dataPartitionsnutzung anzeigen). Die Verwendung des Terminal-Emulators zur Untersuchung der Nutzung war ebenfalls hilfreich bei der Diagnose meines Problems. Wenn Sie sich Ihre /dataund /data/dataPartitionen ansehen, sehen Sie die gleichen Diskrepanzen?

Dies hört sich so an, als würden Sie Apps2SD oder ein gleichwertiges Gerät verwenden, wobei beim Verschieben der App auf die SD-Karte nur ein Teil der App im internen Speicher und der Rest auf der SD-Karte gespeichert wird.

Überprüfen Sie zur Überprüfung Ihre SD-Karte und prüfen Sie, ob die Daten der App noch vorhanden sind. Diese sollten vorhanden sein, /sdcard/Android/data/gefolgt vom Paketnamen der installierten Anwendung.

Das ist ein normaler Mechanismus der Apps2SD.

Danke, ich benutze Link2SD. Mir war nicht klar, dass es einen Teil der App zurücklässt. Dies hilft, es zu erklären.

Viele Leute haben solche Probleme und ich habe das gleiche. Das Verschieben von Apps auf die SD-Karte verzögert das Problem nur ein wenig, da etwas anderes den internen Speicher füllt. Ich habe es endlich herausgefunden und es funktioniert super.

Ich habe ein Galaxy Tab 7, aber viele Android-Geräte werden das erleben. Bei dem aufgerufenen /datahandelt es sich nicht wirklich nur um Daten, sondern hier installiert Android die apk-Anwendung und einige der damit verbundenen Daten. Wenn Sie die Installation der apk auf der SD-Karte erzwingen, wird immer noch ein Teil des /dataSpeicherplatzes (kleine Menge) für einige Daten verwendet.

Das Problem, das ich entdeckt habe, liegt darin /data/tombstone, dass Sie 10 Dateien mit dem Namen tombstone_0#. Dies sind konstante/ununterbrochene Debugging-Informationen, die von Android gesammelt werden. Diese Dateien bauen sich im Laufe der Zeit auf. Das braucht man als normaler User nicht. Löschen Sie alle. Diese 4 Dateien belegten 1,4 GB meines 1,89 GB großen internen Tablet-Speichers.

Dazu müssen Sie Ihr Gerät rooten. Ja, du musst. Und es wird nicht explodieren, keine Sorge, ich habe es getan und viele andere auch! Holen Sie sich dann ein Programm wie "Root Explorer", um den Müll zu durchsuchen und zu löschen. Es wird Root-Rechte anfordern und erhalten, wenn Sie Ihr Gerät zuvor gerootet haben, und Sie können tun, was Sie wollen.

Um Ihr Gerät zu rooten, googlen Sie einfach „root android [mein Gerätemodell]“ und Sie sollten schnell herausfinden, wie Sie Ihr Gerät rooten können.

Dieses Problem ist ein Konstruktionsfehler. Wenn der interne Speicher niedrig ist, sollte Android eine Hintergrundaufgabe starten, um diesen Müll zu bereinigen.

Bitte lesen Sie auch meine Kommentare zu Ihrer ähnlichen Antwort hier - ich habe nie Grabsteine ​​gesehen, die mehr als 10 MB belegen, Ihr Fall ist der erste. Und selbst wenn es Root erfordert, um sie zu entfernen. PS: Da "Tombstones" unter Unix/Linux sogenannte "Core Dumps" sind, variiert ihre Größe mit dem Speicher, der von den entsprechenden (abgestürzten) Prozessen verwendet wird. Offensichtlich waren Ihre Apps ziemlich speicherhungrig :)