Android "Almacenamiento interno" utilizado pero no informado

Como propietario de un Nexus One con Gingerbread, lucho continuamente para mantener espacio libre en el almacenamiento interno de mi teléfono. Hoy noté algo extraño.

La parte inferior de la pantalla "Administrar aplicaciones" de Andorid muestra un gráfico de barras que informa el "Almacenamiento interno" del teléfono (tengo 29M libres). Cuando hago clic en una aplicación, puedo ver el almacenamiento para la "Aplicación" y para los "Datos" de la aplicación. La aplicación, en la mayoría de los casos, se almacena en la tarjeta SD. Los "datos" de la aplicación se almacenan en el teléfono (supongo).

Lo que encuentro es que no veo la imagen completa de lo que ocupa el almacenamiento interno. Por ejemplo, tengo 29M libres en almacenamiento interno. La aplicación Angry Birds, que se almacena en la tarjeta SD, tiene 3,14 M. Sus datos son 4.0K. Luego borro los Angry Birds (¡jadeo!) y mi almacenamiento interno gratuito salta a 31M. Así que parece que ha liberado 2M, cuando solo hubiera esperado que liberara 4.0K. ¿Alguna idea de lo que está pasando aquí?

Respuestas (5)

La diferencia de espacio libre puede explicarse por tres factores relevantes que pueden terminar brindándole información engañosa sobre el espacio real disponible en su almacenamiento interno:

  1. El Espacio Libre informó

    El espacio libre informado al final de la pantalla "Administrar aplicaciones" se redondea a MB, y le brinda una estimación general de espacio libre en función del momento en que abrió dicha pantalla, y se actualiza de vez en cuando (según mis pruebas sobre cada minuto).

    Mencioné "redondeado" porque si accede al panel "Configuración de almacenamiento", obtendrá una imagen clara del espacio libre disponible, hasta KB.

  2. La asignación de la aplicación

    Como ya mencionó t0mm13b, una aplicación se puede mover por completo a la tarjeta SD o dejar una parte atrás, este problema está más relacionado con el desarrollo de la aplicación en sí y no hay reglas estándar a seguir.

    Realicé un ejercicio con "Angry Birds", y aunque la descarga mencionó 20 MB, después de la instalación consumió 24 MB. Después de moverlo a la tarjeta SD usando la opción para este fin en la pantalla "Administrar aplicaciones", quedaron 1,85 MB en el almacenamiento interno, más 4 KB de datos.

  3. Archivos de sistema temporales de otras aplicaciones o servicios en ejecución

    Mientras escribía esta respuesta, el espacio libre informado variaba entre 2 MB, esto nos dice que el sistema operativo crea y libera espacio constantemente según las cosas que se ejecutan.

Puede haber otros factores relacionados con las especificaciones del sistema de archivos ext4 utilizadas por Gingerbread, pero no creo que sean más responsables de la diferencia de 2 MB.


Por los tres puntos mencionados anteriormente, mientras realizaba un ejercicio con la aplicación que mencionaste usando un dispositivo con una ROM Gingerbread estándar, logré contabilizar 2 MB de diferencia, al igual que el espacio que mencionaste.


Determinar el espacio ocupado interno y externo

Continuando con los comentarios, con respecto a una forma de saber con precisión cuánto ocupa una aplicación en el dispositivo y poder verla mediante almacenamiento externo o interno, la aplicación más precisa que estoy usando actualmente es SanDisk Memory Zone de SanDisk Corp. disponible de forma gratuita en Google Play Store.

  1. Abre la aplicación
  2. Seleccione el almacenamiento deseado
  3. Revisa los detalles al respecto

    Capturas de pantalla de ScanDisk

Muy buena explicación, como siempre que Zuul lo hace :) Entonces, ¿diría que hay alguna manera para que el usuario final determine claramente cuánto espacio consume una aplicación y dónde, sin involucrar "cosas complicadas" como, por ejemplo, el uso de aplicaciones para terminales? Como tenemos muchas preguntas sobre "¿dónde se ha ido mi almacenamiento?", sería de gran ayuda.
Agregando a mi comentario anterior, como no lo aclaré: me refiero a determinar cuánto espacio ocupa una aplicación en el almacenamiento interno y cuánto en el almacenamiento externo , es decir, para ver cuánto y dónde. Lo mejor, por supuesto, es si uno pudiera ver todo esto en un solo lugar, a diferencia de lo que mostré en mi respuesta con los exploradores de almacenamiento gráfico.
Creo que son los archivos dex de aplicaciones los que tienden a quedarse atrás de la memoria del teléfono cuando se mueve a SD usando Apps2SD de stock. Así que mi teoría es que, a menor cantidad de archivos dex de la aplicación, más eficiente se vuelve App2SD.
Ya me pregunté si la caché de Dalvik está incluida con la "asignación de aplicaciones" dada. Lo mismo para los archivos temporales, que serían identificables a través de su propietario (uid), pero esto requeriría un escaneo completo del sistema de archivos, lo que costaría un poco de tiempo y recursos, pero teóricamente podría hacerse a pedido (a través de algún botón de reescaneo).
¡Gracias por la adición, @Zuul! Mientras usa esa aplicación: la captura de pantalla no muestra ninguna división en "memoria del teléfono". ¿Distingue entre las particiones /datay /data/data, lo que a menudo causa confusiones (si son particiones separadas, lo que no es cierto para todos los dispositivos/versiones de Android)?

Revisando, acabo de encontrar algunas aplicaciones útiles que revelan dónde va el almacenamiento.

Por un lado, está DiskUsage . Aunque la captura de pantalla 1 muestra la tarjeta sd aquí, el video en la página de la tienda de aplicaciones deja en claro que también se puede usar en el almacenamiento interno, e incluso vincula a la página de aplicaciones que generalmente encuentra a través de Menú -> Aplicaciones -> Administrar aplicaciones . Puede caminar y acercar/alejar cada área, como muestran las anotaciones en la captura de pantalla.

Mi segundo candidato es Folder Size Chart , que viene con un diseño diferente y, como se ve en la captura de pantalla 2 , también puede manejar el almacenamiento interno.

Uso del disco Tabla de tamaños de carpetas

Estos dos definitivamente pueden ayudar a identificar los "cerdos de almacenamiento". Hay muchos otros que se encuentran en la tienda de juegos que siguen este concepto, pero la mayoría están limitados a la tarjeta SD o requieren acceso de root.

Como el N1 está estrechamente relacionado con el HTC Incredible, es posible que se encuentre con el mismo problema de poco espacio de almacenamiento que afecta a los usuarios de Incredible (como yo). Hice una pregunta relacionada cuando comencé a experimentar el cierre forzado de las aplicaciones debido a la falta de espacio en la partición y luego consolidé mi comprensión de las particiones de datos en una respuesta a una pregunta sobre la advertencia falsa de "poco espacio" (almacenamiento interno) en HTC Incredible :

... la pantalla de configuración de mi aplicación me muestra cuál debe ser el /datauso (nunca cerca del máximo, los números coinciden con el /datatamaño informado por DiskUsage) a pesar de que mis aplicaciones están restringidas por el tamaño mucho más pequeño /data/data(donde a menudo me quedo sin espacio)...

Descubrí que el número informado como "Almacenamiento interno" informaba algo completamente inútil y, según todas las cuentas, era inútil para ayudarme a administrar el almacenamiento de la aplicación. Estoy de acuerdo con Izzy en su recomendación de DiskUsage , lo encontré muy útil, especialmente cuando está rooteado (con permisos de root puede mostrar /data/datael uso de la partición). Usar el emulador de terminal para investigar el uso también fue útil para diagnosticar mi problema. Cuando echa un vistazo a sus particiones /datay /data/data, ¿ve las mismas discrepancias?

Parece que está utilizando Apps2SD o equivalente, por lo que, al mover la aplicación a la tarjeta SDC, solo una parte de la aplicación se almacena en el almacenamiento interno y el resto en la tarjeta SDC.

Para la verificación, verifique su tarjeta SD y vea si los datos de la aplicación todavía están allí, esto debería estar presente /sdcard/Android/data/seguido del nombre del paquete de la aplicación instalada.

Ese es un mecanismo normal de Apps2SD.

Gracias, estoy usando Link2SD. No me di cuenta de que deja atrás una parte de la aplicación. Esto ayuda a explicarlo.

Mucha gente tiene ese tipo de problema y yo tengo el mismo. Mover aplicaciones a la tarjeta SD solo retrasa un poco el problema porque algo más llena el almacenamiento interno. Finalmente me di cuenta y funciona muy bien.

Tengo un Galaxy Tab 7 pero muchos dispositivos Android experimentarán eso. El que se llama /dataen realidad no es solo datos, sino que es donde Android instala la aplicación apk y algunos de los datos relacionados con ella. Si obliga a la aplicación a instalarse en la tarjeta SD, seguirá utilizando parte del /dataespacio (pequeña cantidad) para algunos datos.

El problema que descubrí está en /data/tombstone, encontrará 10 archivos llamados tombstone_0#. Se trata de información de depuración constante/ininterrumpida recopilada por Android. Estos archivos se acumulan con el tiempo. No necesitas eso para un usuario normal. Eliminar todos ellos. Estos 4 archivos usaban 1,4 GB de los 1,89 GB de almacenamiento interno de mi tableta.

Para hacerlo, deberá rootear su dispositivo. Si, debes. Y no va a explotar no te preocupes, yo lo he hecho y muchos otros también! Luego obtenga un programa como "Root Explorer" para navegar y eliminar la basura. Solicitará y se le otorgará privilegio de root si rooteó su dispositivo antes y podrá hacer lo que quiera.

Para rootear su dispositivo, simplemente busque en Google "root android [my device model]" y encontrará rápidamente cómo rootear su dispositivo.

Este problema es un defecto de diseño. Cuando hay poco almacenamiento interno, Android debería iniciar una tarea en segundo plano para limpiar esa basura.

Consulte también mis comentarios sobre su respuesta similar aquí : nunca vi lápidas que ocuparan más de 10 MB, su caso es el primero. E incluso si, requiere root para eliminarlos. PD: Como las "lápidas" son lo que se denomina "volcados de núcleo" en Unix/Linux, su tamaño varía según la memoria utilizada por sus correspondientes procesos (bloqueados). Obviamente, las suyas han sido aplicaciones bastante hambrientas de memoria :)