47 Stimmen

Gibt es eine maximale Größe des internen Android-Speichers für eine Anwendung?

Ich möchte eine Json-Datei mit allen Anwendungsdaten (etwas ähnlich wie Präferenz) zu speichern, aber im nicht sicher, was ist die Grenzgröße, denn wenn die app diese Datei nicht verwenden kann, wird es wahrscheinlich nicht funktionieren. ist diese Informationen im Voraus bekannt und das Betriebssystem reservieren etwas Platz für Ihre app oder seine auf die Größe zur Verfügung basiert.

Aktualisierung: Ich kümmere mich nicht wirklich um den externen Speicher, da dieser nicht immer im Gerät vorhanden ist und gewechselt werden kann (SD-Karte) und ich könnte nach internen Speicher mit diesem aber das ist nicht, was ich wissen will, was ich wissen will, wenn es eine Speichergröße für den internen Speicher für das Gerät zugewiesen?

6 Stimmen

Wenn Sie eine JSON Datei, von der Sie befürchten, dass sie zu groß ist, machen Sie es falsch.

8 Stimmen

Ich mache mir keine Sorgen, dass die Datei zu groß Ich mache mir Sorgen, dass der interne Speicher, der für die App übrig bleibt, zu klein ist. zu klein

46voto

Ted Hopp Punkte 227177

Wenn Sie Environment.getExternalStorageDirectory() (oder Context.getExternalFilesDir() für API-Level 8 und höher) als Ort für Ihre json-Datei, dann glaube ich, dass die Größe durch den verfügbaren Platz auf dem externen Speicher (normalerweise eine SD-Karte) begrenzt wird. Für die meisten Geräte, ich glaube, es gibt keine festen Grenzen in Android für externe Dateispeicher gebaut. (Der interne Speicher ist eine andere Sache. Die Gerätehersteller können recht restriktive Grenzen festlegen, vielleicht sogar nur 100 MB, die von allen Anwendungen gemeinsam genutzt werden).

UPDATE: Beachten Sie, dass nach der Kompatibilitätsdefinition für Android 2.3 (Abschnitt 7.6.1), sollten die Geräte über einen recht großen Speicher verfügen:

Geräteimplementierungen MÜSSEN mindestens 150 MB nichtflüchtigen Speicher für Benutzerdaten zur Verfügung haben. Das heißt, die Partition /data MUSS mindestens 150 MB groß sein.

Über die obigen Anforderungen hinaus SOLLTEN Geräteimplementierungen mindestens 1 GB nichtflüchtigen Speicher für Benutzerdaten zur Verfügung haben. Beachten Sie, dass diese Diese höhere Anforderung soll in einer zukünftigen Version von Android zu einem harten Minimum werden. Es wird dringend empfohlen, dass Geräteimplementierungen folgende Anforderungen erfüllen Geräteimplementierungen werden dringend empfohlen, diese Anforderungen bereits jetzt zu erfüllen, da sie andernfalls möglicherweise nicht für die Kompatibilität mit einer zukünftigen Version von Android in Frage kommen.

Dieser Speicherplatz wird von allen Anwendungen gemeinsam genutzt, so dass er sich schnell füllen kann. Es gibt keinen garantierten Mindestspeicherplatz für jede Anwendung. (Ein solches garantiertes Minimum wäre für Anwendungen, die mehr als das Minimum speichern müssen, wertlos und für Anwendungen, die weniger speichern, eine Verschwendung).

bearbeiten : Vom Kompatibilitätsdefinition für Android 4.0

Geräteimplementierungen MÜSSEN mindestens 350 MB nichtflüchtigen Speicher für Benutzerdaten zur Verfügung haben. Das heißt, die Partition /data MUSS mindestens 350 MB groß sein.

Von der Kompatibilitätsdefinition für Android 4.3

Geräteimplementierungen MÜSSEN mindestens 512 MB nichtflüchtigen Speicher für Benutzerdaten zur Verfügung haben. Das heißt, die Partition /data MUSS mindestens 512 MB groß sein.

Interessanterweise ist die Empfehlung, dass Implementierungen mindestens 1 GB bereitstellen SOLLTEN, unverändert geblieben.

1 Stimmen

@Jimmy - Über wie viele Dateien reden wir hier?

1 Stimmen

Die Datei ist nicht wirklich groß, sagen wir ein paar KB, aber die Sache ist die, wenn das Betriebssystem in einigen Fällen nichts für meine Anwendung reserviert, dann werden selbst kleine Dateien ein Problem sein.

6 Stimmen

@Jimmy - Sie machen sich Sorgen über ein Nicht-Problem. Wenn der interne Speicher so voll ist, dass kein Platz mehr für eine Datei von wenigen KB ist, dann wird das Telefon für so ziemlich alles nicht mehr gut funktionieren. Verwenden Sie einfach interner Speicher und alles sollte gut werden.

20voto

FoamyGuy Punkte 46127

Ich habe noch nie erlebt, dass es eine einzelne Anwendung einschränkt, und ich habe es mit dem Speichern einiger ziemlich großer (200 MB) Videodateien im Dateiverzeichnis der Anwendung getestet.

Was den internen Speicher angeht, so denke ich, dass Sie nur durch die Menge an internem Speicher begrenzt sind, die allen Anwendungen zur Verfügung steht. Wie @Ted Hopp bereits erwähnt hat, ist dieser bei einigen älteren und preiswerteren Geräten eher klein. Aber bei den neueren und höherwertigen Geräten haben sie angefangen, ihn auf eine vernünftige Menge zu erhöhen, obwohl selbst wenn das Gerät viel Speicherplatz hat, könnte er immer noch von anderen Anwendungen belegt werden (Sie müssen also testen, was in diesem Szenario passiert).

Es ist auch erwähnenswert, dass bei Verwendung eines externen Speichers, wie z. B. einer SD-Karte, die json-Datei technisch vom Benutzer bearbeitet werden kann. Er könnte sie in einem Texteditor öffnen und die Rohwerte ändern, wenn er Lust dazu hätte. (Dies ist auch möglich, wenn Sie sich entscheiden, den internen Speicher zu verwenden, aber es würde ein gerootetes Gerät erfordern, wohingegen, wenn es auf der SD-Karte gespeichert ist, kein Root erforderlich wäre)

Wenn Sie also Informationen speichern, die der Benutzer nicht manuell bearbeiten kann, sollten Sie das in Betracht ziehen.

1 Stimmen

Wenn Sie weiterhin Dateien erstellen und versuchen, über 3,61 GB hinauszugehen, stoßen Sie an die Grenze. Es ist offenbar da.

0 Stimmen

Ich habe 4,5 Gb gespeichert

0 Stimmen

Ich habe 6,86 GB im internen Speicher auf einem 64-GB-Gerät gespeichert und es fing an, mir die Fehlermeldung zu geben, dass kein Platz mehr vorhanden ist, obwohl ich 10 GB externen Speicher frei habe. Vielleicht liegt die Grenze für den internen Speicher bei 6,5 GB auf einem 64-GB-Gerät.

3voto

Emmanuel Mahuni Punkte 1403

Ich glaube, es gibt eine harte Grenze von etwa 3,61 GB.

Ich habe derzeit termux auf meinem Tab installiert. Termux läuft ein Linux-Terminal, wo ich nodejs und npm installieren kann. Dadurch wird im Wesentlichen eine Entwicklungsumgebung geschaffen. Ich habe die Pakete ohne große Platzprobleme installiert, außer wenn der interne Speicher meines Geräts wirklich knapp ist. Aber seit kurzem. Ich denke, ich habe diese Grenze erreicht, was mich zu dieser Frage und auf diese Seite brachte.

Der Speicherplatz meines Geräts beträgt weit mehr als 1 GB, und ich habe es mit einem Speicherplatz von nur 200 MB verwendet, ohne dass dieses Problem auftrat. Aber meine Termux-Installation ist auf 3,61 GB angewachsen. Ich habe vor kurzem mit yarn angefangen und es scheint, dass yarn ein Platzfresser ist. Ich war dabei, ein Paket zu installieren und es wurde plötzlich protokolliert: error Could not write file "/data/data/com.termux/files/home/dev/ide/theia/yarn-error.log": "ENOSPC: no space left on device Das hat die Installation zerstört und ich dachte, ich hätte wirklich keinen Platz mehr, aber das war nicht der Fall. Bei näherer Betrachtung zeigt sich, dass ich immer noch den oben erwähnten Platz im internen Speicher habe und yarn 750 MB in Beschlag genommen hat, von denen npm nur etwa 500 MB im Cache hat. Seitdem benutze ich npm, aber ich musste einfach yarn benutzen, da die Installation von Theia nicht gut mit npm zu Ende ging. Theia scheint yarn als Paketmanager zu verwenden. 3.61GB scheint also das harte Limit für App + Daten zu sein.

Indem ich einige Pakete entferne und den von anderen überflüssigen Paketen belegten Platz reduziere, gewinne ich Platz, um Dateien zu erstellen und zu installieren, wie ich will, aber sobald ich wieder 3,61 GB erreiche!!! Bumm!!! das war's, ich kann keine Dateien mehr erstellen.

Ich glaube nicht, dass dies gut dokumentiert ist, aber es ist der Fall.

Ich benutze Lollipop (Android 5.1)

Um dies zu bestätigen, sollte jemand anderes versuchen, eine Anwendung zu verwenden, die wirklich große Dateien in ihrer internen Sandbox erstellt. Nicht im internen Speicher, sondern in ihrem privaten Datenbereich. Ich bin sicher, dass Sie wahrscheinlich an diese harte Grenze stoßen werden.

2voto

Es gibt definitiv eine Obergrenze von etwa 3,5 GB pro App in /sdcard/Android/data/, zumindest auf bestimmten Geräten. Dies gilt auch für die von Google bereitgestellten Images für den offiziellen Android-Emulator. Ich habe das bemerkt, als ich bei einer bestimmten Android-App, die mit Unity entwickelt wurde und viele Bild-, Video- und Audiodaten herunterlädt, wiederholt die Fehlermeldung "Kein Speicherplatz vorhanden" erhielt. Das passierte jedes Mal, wenn der Ordner an dem oben genannten Ort auf etwa 3,5 GB anwuchs. Kein noch so großes Löschen des Speicherplatzes kann dieses Problem beheben. Es scheint jedoch keine Dokumentation über dieses Verhalten zu geben.

1 Stimmen

Ich habe 6,86 GB im internen Speicher auf einem 64-GB-Gerät gespeichert, und es fing an, mir die Fehlermeldung zu geben, dass kein Platz mehr frei ist, obwohl ich 10 GB externen Speicher frei habe. Vielleicht liegt die Grenze für den internen Speicher bei 6,5 GB auf einem 64-GB-Gerät.

0 Stimmen

@Kolitha Können Sie ein Gerät nennen, bei dem Sie eine Grenze gesehen haben?

1 Stimmen

@AndyJoiner Es ist schon eine Weile her, daher kann ich mich nicht mehr genau erinnern, aber ich glaube, meine Beobachtungen betrafen 1. Sony Xperia M2 2. Android 7 offizielle AVD

0voto

lomec Punkte 1289

Update für den Kommentar von Ted;

Von der Kompatibilitätsdefinition für Android 7.0

Android-Fernsehgeräte MÜSSEN über mindestens 4 GB und andere Geräteimplementierungen MÜSSEN über mindestens 3 GB nichtflüchtigen Speicher für private Anwendungsdaten verfügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X