est-il une taille maximale pour android interne de stockage alloué pour une application?

je veux enregistrer un fichier json avec toutes les données de l'application (quelque chose de similaire à la préférence), mais je ne sais pas quelle est la taille limite, parce que si l'application ne peut pas utiliser ce fichier, il ne fonctionnera probablement pas. est-ce que cette information est connue à l'avance et L'OS réserver un peu d'espace pour votre application ou son en fonction de la taille disponible.

mise à jour: Je ne me soucie pas vraiment de stockage externe car n'est pas toujours disponible dans l'appareil et pourrait être changé (carte SD) et je pourrais vérifiez pour le stockage interne en utilisant ce mais ce n'est pas ce que je veux savoir, ce que je veux savoir s'il y a une taille de mémoire allouée pour le stockage interne de l'appareil ?

33
demandé sur Community 2012-02-08 21:31:29

3 réponses

si vous utilisez Environment.getExternalStorageDirectory() (ou Context.getExternalFilesDir() pour API Niveau 8 et plus) que l'endroit pour votre fichier json, alors je crois que la taille sera limitée par l'espace disponible dans le stockage externe (généralement une carte SD). Pour la plupart des appareils, Je crois qu'il n'y a pas de limites fixes intégrées dans Android pour le stockage de fichiers externes. (Le stockage interne est une autre affaire. Les fabricants de dispositifs peuvent imposer des limites très restrictives, peut-être aussi basses que 100MB partagé entre toutes les applications.)

mise à jour: notez que selon la définition de compatibilité pour Android 2.3 (Section 7.6.1), les appareils devraient avoir beaucoup de mémoire:

les implémentations des appareils doivent avoir au moins 150Mo de mémoire non volatile disponible pour les données des utilisateurs. Autrement dit, la partition /data doit être D'au moins 150Mo.

au-delà des prescriptions ci-dessus, dispositif les implémentations doivent avoir au moins 1 Go de mémoire non volatile disponible pour les données des utilisateurs. Notez que cette exigence plus élevée est prévue pour devenir un minimum difficile dans une future version D'Android. Les implémentations de dispositifs sont fortement encouragées à respecter ces exigences maintenant, ou bien ils peuvent ne pas être éligibles pour la compatibilité pour une future version D'Android.

cet espace est partagé par toutes les applications, il peut donc se remplir. Il n'y a pas de minimum garanti stockage disponible pour chaque application. (Un tel minimum garanti serait sans valeur pour les applications qui ont besoin de stocker plus que le minimum et serait un gaspillage pour les applications qui stockent moins.)

Edit : de la définition de compatibilité pour Android 4.0

les implémentations des appareils doivent avoir au moins 350 Mo de mémoire non volatile disponible pour les données des utilisateurs. Autrement dit, la partition / data doit être à moins de 350 MO.

de la définition de compatibilité pour Android 4.3

les implémentations des appareils doivent avoir au moins 512Mo de mémoire non volatile disponible pour les données des utilisateurs. Autrement dit, la partition /data doit être d'au moins 512Mo.

fait intéressant, la recommandation que les mises en œuvre devraient fournir au moins 1 Go est restée la même.

39
répondu Ted Hopp 2013-10-18 13:44:52

Je ne l'ai jamais vu limiter une seule application, et je l'ai testé avec la sauvegarde de certains assez grands (200 Mo) fichiers vidéo dans les fichiers app dir avant.

pour le stockage interne je pense que votre seul limité par la quantité de stockage interne mis à disposition pour toutes les applications à partager. Qui comme @Ted Hopp mentionné est plutôt petit sur certains des plus anciens et bas de gamme. Mais sur les appareils plus récents et plus haut de gamme ils ont commencé à le booster à un raisonnable quantité, bien que même si l'appareil a beaucoup d'espace, il pourrait encore être utilisé par d'autres applications(vous devez donc tester ce qui se passera dans ce scénario).

il est également intéressant de souligner que si vous utilisez un stockage externe tel que la carte SD, alors votre fichier json serait techniquement modifiable par l'utilisateur. Ils pourraient ouvrir dans un éditeur de texte et commencer à changer les valeurs brutes, s'ils avaient un désir d'. (Cela est également possible si vous choisissez d'utiliser le stockage interne, mais il nécessiterait un dispositif enraciné, alors que s'il est stocké sur la carte SD ne nécessiterait pas root)

donc si vous stockez des informations que vous préférez que l'utilisateur n'ait pas l'option de modifier manuellement, vous pouvez vouloir prendre en considération.

15
répondu FoamyGuy 2012-06-23 14:11:49

je pense qu'il y a une limite dure d'environ 3,61 GO.

j'ai actuellement termux installé sur mon onglet. Termux exploite un terminal linux où je peux installer nodejs et npm. Donc essentiellement de la création d'un environnement de développement. J'ai installé des paquets sans trop de problèmes d'espace, sauf lorsque la mémoire interne de mon appareil est vraiment basse. Mais que de récentes. Je pense avoir atteint cette limite, ce qui m'a amené à cette question et a frappé sur cette page.

mon périphérique de stockage est bien au-delà de 1 Go et je l'ai utilisé avec un espace aussi bas que 200 Mo sans ce problème. Mais mon installation termux est passé à 3,61 GO. J'ai récemment commencé avec fil et il semble que fil est un porc de l'espace. J'installais un paquet et il s'est soudain: error Could not write file "/data/data/com.termux/files/home/dev/ide/theia/yarn-error.log": "ENOSPC: no space left on device Donc, il a écrasé l'installation et pensé que je manquais vraiment d'espace, mais je ne l'avais pas fait. Une inspection plus poussée montre que j'ai encore l'espace susmentionné dans le stockage interne et fil a monopolisé 750MB, de qui npm seulement environ 500 Mo dans la cache. J'ai utilisé npm depuis, mais juste besoin d'utiliser le fil comme l'installation pour Theia ne finissait pas bien avec npm. Theia semble utiliser le fil comme gestionnaire de paquets. Ainsi, 3.61 GB indique être la limite dure pour les données app +.

supprimer certains paquets et réduire l'espace utilisé par d'autres paquets redondants, je gagne de l'espace pour créer des fichiers et installer à ma guise, mais dès que j'atteins à nouveau 3,61 GO!!! boom!!! c'est ça, je ne peux pas créer tous les fichiers plus.

Je ne pense pas que ce soit bien documenté, mais c'est en train de se produire.

j'utilise lollipop (android 5.1)

pour affirmer cela, quelqu'un d'autre devrait essayer d'utiliser une application qui crée de très gros fichiers dans son bac à sable interne. Pas dans le stockage interne, mais dans sa zone de données privée. Je suis sûr que vous atteindrez cette limite.

0
répondu Emmanuel Mahuni 2018-08-16 14:26:07