¿hay un tamaño máximo de almacenamiento interno de Android asignado para una aplicación?


Quiero guardar un archivo json con todos los datos de la aplicación (algo similar a preference) pero no estoy seguro de cuál es el tamaño límite, porque si la aplicación no puede usar este archivo probablemente no funcionará. es esta información conocida de antemano y el sistema operativo reserva algo de espacio para su aplicación o se basa en el tamaño disponible.

Actualizar: Realmente no me importa el almacenamiento externo, ya que no siempre está disponible en el dispositivo y podría cambiarse (tarjeta SD) y podría verificar interno almacenamiento usando este pero esto no es lo que quiero saber, Lo que quiero saber si hay un tamaño de memoria asignado para el almacenamiento interno para el dispositivo ?

Author: Community, 2012-02-08

3 answers

Si usa Environment.getExternalStorageDirectory() (o Context.getExternalFilesDir() para API nivel 8 y arriba) como el lugar para su archivo json, entonces creo que el tamaño estará limitado por el espacio disponible en el almacenamiento externo (generalmente una tarjeta SD). Para la mayoría de los dispositivos, creo que no hay límites fijos integrados en Android para el almacenamiento de archivos externos. (El almacenamiento interno es un asunto diferente. Los fabricantes de dispositivos pueden imponer límites bastante restrictivos, tal vez tan bajos como 100MB compartidos entre todas las aplicaciones.)

ACTUALIZACIÓN: Nota que de acuerdo con la definición de compatibilidad para Android 2.3 (Sección 7.6.1), los dispositivos deben tener bastante memoria:

Las implementaciones de dispositivos DEBEN tener al menos 150 MB de almacenamiento no volátil disponible para los datos del usuario. Es decir, la partición / data DEBE tener al menos 150MB.

Más allá de los requisitos anteriores, las implementaciones de dispositivos DEBEN tener al menos 1 GB de almacenamiento no volátil disponible para los datos del usuario. Tenga en cuenta que esto requisito está previsto conviértete en un mínimo difícil en una futura versión de Android. Se recomienda encarecidamente que las implementaciones de dispositivos cumplan estos requisitos ahora, o de lo contrario pueden no ser elegibles para la compatibilidad para una versión futura de Android.

Este espacio es compartido por todas las aplicaciones, por lo que puede llenarse. No hay un almacenamiento mínimo garantizado disponible para cada aplicación. (Tal mínimo garantizado no tendría ningún valor para las aplicaciones que necesitan almacenar más que el mínimo y sería un desperdicio para las aplicaciones que almacenan menos.)

Editar : De la definición de compatibilidad de para Android 4.0

Las implementaciones de dispositivos DEBEN tener al menos 350 MB de almacenamiento no volátil disponible para los datos del usuario. Es decir, la partición / data DEBE tener al menos 350MB.

De la definición de compatibilidad de para Android 4.3

Las implementaciones de dispositivos DEBEN tener al menos 512 MB de almacenamiento no volátil disponible para los datos del usuario. Es decir, la partición / data DEBE ser al menos 512MB.

Curiosamente, la recomendación de que las implementaciones DEBEN proporcionar al menos 1 GB se ha mantenido igual.

 39
Author: Ted Hopp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-18 13:44:52

Nunca lo he visto limitar una sola aplicación, y lo he probado con guardar algunos archivos de video bastante grandes (200 mb) en el directorio de archivos de la aplicación antes.

Para el almacenamiento interno Creo que solo está limitado por la cantidad de almacenamiento interno disponible para todas las aplicaciones para compartir. Que como @ Ted Hopp mencionó es bastante pequeño en algunos de los dispositivos más antiguos y de gama baja. Pero en los dispositivos más nuevos y de gama alta que han comenzado a golpear hasta una cantidad razonable, aunque incluso si el dispositivo tiene mucho espacio, todavía podría ser ocupado por otras aplicaciones (por lo que necesita probar lo que sucederá en este escenario).

También vale la pena señalar que si utiliza almacenamiento externo, como la tarjeta SD, entonces su archivo json sería técnicamente editable por el usuario. Podrían abrirlo en un editor de texto y comenzar a cambiar los valores sin procesar si lo deseaban. (Esto también es posible si elige usar almacenamiento interno, pero requeriría un dispositivo rooteado, mientras que si se almacena en la tarjeta SD no requeriría root)

Así que si está almacenando información que prefiere que el usuario no tenga la opción de editar manualmente, es posible que desee tomar eso en consideración.

 15
Author: FoamyGuy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-23 14:11:49

Creo que hay un límite duro de aproximadamente 3.61 GB.

Actualmente tengo termux instalado en mi pestaña. Termux ejecuta un terminal linux donde puedo instalar nodejs y npm. Con ello se crea esencialmente un entorno de desarrollo. He instalado paquetes sin muchos problemas relacionados con el espacio, excepto cuando la memoria interna de mi dispositivo es realmente baja. Pero desde hace poco. Creo que he llegado a ese límite, lo que me llevó a esta pregunta y golpeó en esta página.

El almacenamiento de mi dispositivo está mucho más allá 1GB y lo he utilizado con espacio tan bajo como 200MB sin este problema. Pero mi instalación termux ha crecido a 3.61 GB. Recientemente empecé con hilo y parece que el hilo es un cerdo espacio. Estaba instalando un paquete y de repente se registra: error Could not write file "/data/data/com.termux/files/home/dev/ide/theia/yarn-error.log": "ENOSPC: no space left on device Así que aplastó la instalación y pensé que realmente me quedé sin espacio, pero no lo había hecho. Inspección adicional muestra que todavía tengo el espacio antes mencionado en el almacenamiento interno y el hilo ha acaparado 750MB, de los cuales npm solo alrededor de 500MB en caché. He sido usando npm desde entonces, pero solo necesitaba usar yarn ya que la instalación para Theia no estaba terminando bien con npm. Theia parece estar utilizando yarn como su gestor de paquetes. Así que 3.61 GB insinúa ser el límite duro para app + data.

Al eliminar algunos paquetes y reducir algo de espacio utilizado por otros paquetes redundantes, gano espacio para crear archivos e instalarlos como me plazca, pero tan pronto como llego a 3.61 GB de nuevo!!! boom!!! eso es todo, no puedo crear más archivos.

No creo que esto sea bien documentado, pero está sucediendo.

Estoy usando lollipop (android 5.1)

Para afirmar esto, alguien más debería intentar usar una aplicación que cree archivos realmente grandes en su sandbox interno. No en el almacenamiento interno, sino en su área de datos privados. Estoy seguro de que probablemente llegará a este límite.

 0
Author: Emmanuel Mahuni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-16 14:26:07