Android "Interner Speicher" verwendet, aber nicht gemeldet

9

Als Besitzer eines Nexus One mit Lebkuchen kämpfe ich ständig darum, freien Speicherplatz im internen Speicher meines Telefons zu erhalten. Heute ist mir etwas Seltsames aufgefallen.

Am unteren Rand des Andorid-Bildschirms "Anwendungen verwalten" wird ein Balkendiagramm angezeigt, in dem der "interne Speicher" des Telefons angezeigt wird (ich habe 29 Millionen frei). Wenn ich in eine App klicke, wird der Speicher für die "Anwendung" und für die "Daten" der App angezeigt. 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 davon sehe, was den internen Speicher beansprucht. Zum Beispiel habe ich 29M frei im internen Speicher. Die Angry Birds App, die auf der SD-Karte gespeichert ist, hat eine Größe von 3,14 Millionen. Die Daten sind 4.0K. Ich lösche dann die Angry Birds (keuch!) Und mein kostenloser interner Speicher springt auf 31 Millionen. Es sieht also so aus, als wäre es 2M freigegeben, wenn ich nur erwartet hätte, dass es 4.0K freigibt. Irgendeine Idee, was hier los ist?

rcourtna
quelle

Antworten:

4

Der Unterschied zwischen freiem Speicherplatz kann durch drei relevante Faktoren erklärt werden, die Ihnen irreführende Informationen über den tatsächlich auf Ihrem internen Speicher verfügbaren Speicherplatz liefern können:

  1. Der freie Speicherplatz gemeldet

    Der am Ende des Bildschirms "Anwendungen verwalten" gemeldete freie Speicherplatz wird auf MB gerundet und bietet Ihnen eine allgemeine Schätzung des freien Speicherplatzes basierend auf dem Zeitpunkt, zu dem Sie diesen Bildschirm geöffnet haben. Er wird von Zeit zu Zeit aktualisiert (durch meine Tests zu) jede Minute).

    Ich habe "gerundet" erwähnt, denn wenn Sie auf das Fenster "Speichereinstellungen" zugreifen, erhalten Sie ein klares Bild über den verfügbaren freien Speicherplatz bis hinunter zu KB.

  2. Die App-Zuordnung

    Wie bereits von t0mm13b erwähnt, kann eine Anwendung vollständig auf die SDCard verschoben werden oder einen Teil 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 SDCard mit der Option für dieses Ziel im Bildschirm "Anwendungen verwalten" wurden 1,85 MB im internen Speicher sowie 4 KB Daten zurückgelassen.

  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 zeigt uns, dass das Betriebssystem ständig Speicherplatz erstellt und freigibt, abhängig von den laufenden Dingen.

Möglicherweise gibt es andere Faktoren, 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 unter Verwendung eines Geräts mit einem Standard-Lebkuchen-ROM durchführte, 2 MB Unterschied zu berücksichtigen, genau wie der von Ihnen erwähnte Speicherplatz.


Bestimmen Sie den belegten internen und externen Raum

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

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

    ScanDisk Screenshots

Zuul
quelle
Sehr gute Erklärung, wie immer, wenn Zuul es tut :) Würden Sie also sagen, dass der Endbenutzer auf irgendeine Weise klar bestimmen kann, wie viel Speicherplatz eine App verbraucht und wo - ohne "komplizierte Dinge" wie z. B. die Verwendung von Terminal-Apps? Da wir hier viele Fragen zu "Wo ist mein Speicher geblieben?" Haben, wäre dies eine große Hilfe.
Izzy
Zu meinem vorherigen Kommentar hinzufügen, da ich das nicht klargestellt habe: Ich wollte bestimmen, wie viel Speicherplatz eine App im internen Speicher und wie viel im externen Speicher belegt - dh um zu sehen, wie viel und wo. Das Beste ist natürlich, wenn man all dies an einem Ort sehen kann - im Gegensatz zu dem, was ich in meiner Antwort mit den grafischen Speicher-Explorern gezeigt habe.
Izzy
Ich glaube, es sind die Apps-Dex-Dateien, die dazu neigen, hinter dem Telefonspeicher zu bleiben, wenn sie mit Standard-Apps2SD auf SD verschoben werden. Meine Theorie ist also, dass App2SD effizienter wird, wenn die Dex-Dateien der App geringer sind.
Irfan
Ich habe mich bereits gefragt, ob der Dalvik-Cache in der angegebenen "App-Zuordnung" enthalten ist. Gleiches gilt für temporäre Dateien, die über ihren Eigentümer (UID) identifizierbar wären. Dies würde jedoch einen vollständigen Dateisystem-Scan erfordern, der ein wenig Zeit und Ressourcen kosten würde, aber theoretisch bei Bedarf durchgeführt werden könnte (über eine Schaltfläche zum erneuten Scannen).
Izzy
1
Vielen Dank für den Zusatz, @Zuul! Wie Sie diese App verwenden: Der Screenshot zeigt keine Unterteilung in "Telefonspeicher". Unterscheidet es zwischen /dataund und /data/dataPartitionen, was häufig zu Verwirrung führt (wenn es sich um separate Partitionen handelt - was nicht für alle Geräte / Android-Versionen gilt)?
Izzy
3

Beim Umschauen habe ich gerade ein paar nützliche Apps gefunden, die zeigen, wohin der Speicher geht.

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

Mein zweiter Kandidat ist die Ordnergrößentabelle , die ein anderes Design hat und, wie in Screenshot 2 zu sehen , auch den internen Speicher behandeln 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.

Izzy
quelle
3

Da das N1 eng mit dem HTC Incredible verwandt ist, kann es sein, dass Sie auf dasselbe Problem mit geringem Speicherplatz stoßen, das Incredible-Benutzer (wie mich) plagt. Ich habe eine verwandte Frage gestellt, als ich anfing, Apps aufgrund eines Mangels an Partitionsspeicherplatz zwangsweise zu schließen, und später mein Verständnis der Datenpartitionen in einer Antwort auf die Frage nach der falschen Warnung "Falscher Speicherplatz" (interner Speicher) auf dem HTC Incredible gefestigt ::

... mein App-Einstellungsbildschirm zeigt mir, wie 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 kleineren eingeschränkt sind /data/data(wo mir oft der Platz ausgeht) ...

Ich stellte fest, dass die als "Interner Speicher" gemeldete Nummer etwas völlig nicht hilfreiches war und in keiner Weise dazu beitrug, den App-Speicher tatsächlich zu verwalten. Ich stimme Izzy in seiner Empfehlung von DiskUsage zu . Ich fand es sehr hilfreich, insbesondere wenn es gerootet ist (mit Root-Berechtigungen kann es die /data/dataPartitionsnutzung anzeigen ). Die Verwendung des Terminalemulators zur Untersuchung der Verwendung war auch bei der Diagnose meines Problems hilfreich. Wenn Sie sich Ihre Partitionen /dataund /data/dataPartitionen ansehen , sehen Sie dieselben Diskrepanzen?

Herr Buster
quelle
2

Dies klingt so, als würden Sie Apps2SD oder ein gleichwertiges Produkt verwenden, bei dem beim Verschieben der App auf die SDCard nur ein Teil der App im internen Speicher und der Rest auf der SDCard gespeichert wird.

Überprüfen Sie zur Überprüfung Ihre SDCard 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.

t0mm13b
quelle
Danke, ich benutze Link2SD. Mir war nicht klar, dass ein Teil der App zurückbleibt. Dies hilft, es zu erklären.
Rcourtna
1

Viele Leute haben solche Probleme und ich habe das gleiche. Das Verschieben von Apps auf eine SD-Karte verzögert das Problem nur ein wenig, da der interne Speicher durch etwas anderes gefüllt wird. Ich habe es endlich herausgefunden und es funktioniert großartig.

Ich habe ein Galaxy Tab 7, aber viele Android-Geräte werden das erleben. Das aufgerufene /dataist eigentlich nicht nur Daten, sondern es ist, wo Android die Anwendung apk und einige der damit verbundenen Daten installiert. Wenn Sie die Installation der apk auf einer SD-Karte erzwingen, wird immer noch ein Teil des /dataSpeicherplatzes (kleine Menge) für einige Daten verwendet.

Das Problem, das ich entdeckt habe, ist /data/tombstone, dass Sie 10 Dateien mit dem Namen finden tombstone_0#. Dies sind konstante / ununterbrochene Debugging-Informationen, die von Android gesammelt werden. Diese Dateien bauen sich im Laufe der Zeit auf. Das brauchen Sie für einen normalen Benutzer nicht. Löschen Sie alle. Diese 4 Dateien verwendeten 1,4 GB meines internen Tablet-Speichers von 1,89 GB.

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 ein Root-Privileg 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, googeln 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 knapp ist, sollte Android eine Hintergrundaufgabe starten, um diesen Müll zu bereinigen.

Sylvain Huard
quelle
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, erfordert root, um sie zu entfernen. PS: Da "Tombstones" unter Unix / Linux als "Core Dumps" bezeichnet werden, variiert ihre Größe mit dem Speicher, der von den entsprechenden (abgestürzten) Prozessen verwendet wird. Offensichtlich waren deine Apps ziemlich speicherhungrig :)
Izzy