¿Cómo no puedo instalar una aplicación de 338 KB cuando tengo 474 MB libres?

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í?

Odio cómo hay algunas personas que siempre quieren proteger la imagen de los poderosos, sin importar cuán mala sea. ¿Podrías dejar de ser tan servil?
Todo el lloriqueo que pareces insistir en arrojar al sitio es un ruido completamente irrelevante. Hay incontables millones de lugares en Internet a los que puedes ir para quejarte de tus molestias personales. Este no es uno de esos lugares. No nos importa cómo percibe que alguien (o alguna empresa) lo ha ofendido personalmente, solo queremos la información que sea relevante para responder a su pregunta.
ok señor defensor de mal servicio.

Respuestas (1)

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_SETTINGSpermiso? ). 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_PERCENTAGEvariable 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_SETTINGSpermiso , o incluso simplemente a través de ADB.

Parece que no entendiste por completo el punto aquí: el problema no es que estaba recibiendo un mensaje de poca memoria, sino que NO PODÍA INSTALAR una aplicación absurdamente pequeña.
Una vez jugué un simulador de vuelo de Silicon Graphics que cabía en un disquete de 1,44 MB. Solo para dar una idea de cuán GRANDES son 474 MB. Si esto no es un ejemplo de obsolescencia programada, no sé qué es.
No pudo instalar eso porque el sistema decidió que se estaba quedando sin almacenamiento, razón por la cual le envió ese mensaje. Incluso si el APK hubiera sido 1k, No es No. El espacio restante se conserva para garantizar que el sistema no se quede sin almacenamiento por completo con su "negocio diario". Por lo general, se realiza una nueva verificación dos veces al día o si el almacenamiento disponible cambió en al menos 2 MB, si recuerdo bien el código. Lo siento, no me estoy perdiendo el punto aquí. Soy consciente de que esto puede sonar insatisfactorio, pero usted quería las razones y se las di (incluso señalándole una posible salida).
Podrían haber mostrado un mensaje: "La instalación de esta aplicación puede ralentizar el sistema e incluso algunas operaciones y actualizaciones no están disponibles. ¿Está seguro de que desea continuar? PD, tendrá la opción de desinstalarla más tarde, devolviendo el sistema a su funcionamiento completo. ." ¿O tal vez se necesitan 474 MB solo para desinstalar cualquier aplicación? ¿O tal vez ese mensaje sería demasiado complejo para el usuario habitual de "Homer Simpson"? (Pero si el usuario puede cambiar el umbral, entonces no es TAN complejo. ¿Por qué no incluir un enlace con el mensaje?) O tal vez es solo "obsolescencia planificada suave", ¿quién no lo hace hoy en día?
"¿O tal vez ese mensaje sería demasiado complejo para el usuario habitual de 'Homer Simpson'?" Tal vez querían mantenerlo simple, sí. "Pero si el usuario puede cambiar el umbral" ¿Quién dijo eso? Si ese es el caso, alguien olvidó señalar dónde y cómo :) Como escribí, de acuerdo con los comentarios en el código (que ningún "usuario promedio" nunca lee) parece haber una posibilidad. Aunque nunca he leído cómo un usuario podría abordar eso . Y lo siento, todos los "por qué" no sé una respuesta. Me hubiera encantado ofrecerle una "solución" más clara.
Nota: He publicado un "seguimiento" que quizás desee ver: ¿ Cómo ajustar el umbral para el evento de "almacenamiento bajo"? No tengo una respuesta sobre eso (o la había incluido con mi respuesta aquí), pero espero ponerlo de manera que uno de nuestros miembros con "percepciones más profundas" pueda responderlo.