Tengo un teléfono Motorola, con 8 GB de memoria interna.
Para mi sorpresa, en unos días tenía 474 MB de espacio libre, ¡pero no podía instalar una aplicación de 338 KB! Por lo tanto, claramente el límite de ~25 MB al que se hace referencia en algunos comentarios ( aquí y aquí ) no siempre es el caso. Un usuario me acaba de decir lo siguiente:
En realidad, son "25 MB o el 10 % del almacenamiento", lo que ocurra primero. Por lo tanto, con, por ejemplo, 10 GB de almacenamiento interno, te afectará tan pronto como caigas por debajo de 1 GB gratis. Loco, pero eso es lo que es.
En realidad, eso no es correcto, porque no tuve que liberar 1 GB de memoria interna. Pero de todos modos, medio gigabyte es suficiente para ejecutar un sistema operativo completo. He visto quejas similares de cientos de MB que no son suficientes para instalar aplicaciones ~ 1 MB o pequeñas operaciones similares ( aquí y aquí ).
¿Qué pasa aquí?
Nota: el usuario citado era yo. Y aquí está la referencia . Para explicar por qué no fue del 10% en su caso, aquí hay una excepción detrás del enlace: "Siempre que el fabricante del dispositivo no cambie la configuración predeterminada". Entonces, ese 10% es la configuración predeterminada, pero obviamente puede ser alterada por el "Panadero de ROM". No puedo decir con qué frecuencia se hace eso; con esa publicación de 2011, la regla podría incluso haber cambiado mientras tanto (aunque tampoco me enteré de eso).
Así que apliqué un poco de "Google-Fu": Android 4.1.1 todavía tiene el comentario
Si el almacenamiento libre en el dispositivo es menor que un valor de umbral ajustable (un parámetro de configuración seguro; predeterminado 10 %), se muestra una notificación de memoria baja para alertar al usuario".
(énfasis mío). Tenga en cuenta el término "umbral ajustable", que hace evidente que este umbral se puede modificar/ajustar. Para Android 4.1.1 puedes encontrarlo en la línea 67:
private static final int DEFAULT_THRESHOLD_PERCENTAGE = 10;
Esta es una variable de clase; pero al no ser un desarrollador de Android, no puedo decir cómo se puede sobrescribir. Ciertamente requerirá permisos del sistema (¿o solo una aplicación con el WRITE_SECURE_SETTINGS
permiso? ). Citando el último código :
* This class implements a service to monitor the amount of disk
* storage space on the device. If the free storage on device is less
* than a tunable threshold value (a secure settings parameter;
* default 10%) a low memory notification is displayed to alert the
* user. If the user clicks on the low memory notification the
* Application Manager application gets launched to let the user free
* storage space.
Puedes ver, la regla del 10% todavía está allí. Pero la DEFAULT_THRESHOLD_PERCENTAGE
variable desapareció (y se reemplazó por mMemLowThreshold
, que ahora parece estar configurada en una clase diferente; consulte la línea 361 ).
TL;DR: Se sigue aplicando el mismo umbral del 10 %, pero el "panadero de ROM" (que crea la ROM) podría ajustarlo. Un desarrollador con más información podría saber si se puede ajustar por otros medios, por ejemplo, una aplicación especial con el WRITE_SECURE_SETTINGS
permiso , o incluso simplemente a través de ADB.
Rodrigo
eldarerathis
Rodrigo