Saltar al contenido

Android: ¿dónde almacenan datos las aplicaciones de Android?

Contamos con el hallazgo a esta escollo, o por lo menos eso esperamos. Si continuas con preguntas déjanoslo saber en un comentario y con gusto te responderemos

Solución:

Todas las aplicaciones (raíz o no) tienen un directorio de datos predeterminado, que es /data/data/. De forma predeterminada, las bases de datos de las aplicaciones, la configuración y todos los demás datos van aquí. Si una aplicación espera que se almacenen grandes cantidades de datos, o por otras razones quiere “ser amable con el almacenamiento interno”, hay un directorio correspondiente en la SDCard (Android/data/).

Aparte de eso, todas las aplicaciones pueden almacenar datos en cualquier lugar de la tarjeta SD, ya que no hay restricciones, y muchas aplicaciones lo hacen. Pueden usar nombres de directorio libremente (y lo hacen de nuevo), que es lo que a menudo hace que sea difícil decidir para qué está destinada toda esa “basura” en la tarjeta, y qué se puede eliminar.

Aunque, como señaló Tom, las aplicaciones raíz podrían almacenar sus datos en casi todas partes de su dispositivo, por lo general siguen las mismas reglas que otras aplicaciones.

Puede encontrar una explicación general de la jerarquía de directorios de Android en mi respuesta aquí. Para su pregunta específica, podría agregar algunos detalles más sobre el /data/data/ (y parte SD correspondiente):

  • databases/: aquí van las bases de datos de la aplicación
  • lib/: bibliotecas y ayudantes para la aplicación
  • files/: otros archivos relacionados
  • shared_prefs/: preferencias y configuraciones
  • cache/: bueno, cachés

Puede haber varios directorios más en este lugar, o menos, todo depende de la aplicación. En su propio “directorio de inicio” (y eso es básicamente, hablando en Linux) pueden colocar archivos donde quieran. Por lo general, estos archivos y directorios solo son accesibles por la propia aplicación (y la raíz, por supuesto), además de los almacenados en la SDCard, a los que pueden acceder todas las aplicaciones.

Se produjeron algunos cambios importantes en el almacenamiento en Android 4.4 (consulte el viaje de almacenamiento de Android). Entonces, lo siguiente es generalmente true para Android 4.4+ y particularmente 6+.

Esto es de mi respuesta detallada a ¿Cómo se usa el espacio en disco en un dispositivo Android? Los archivos de las aplicaciones se guardan (por el sistema y la propia aplicación) en el almacenamiento interno y externo en diferentes categorías.

DIRECTORY                                                    DESCRIPTION / API
=====================================================================================
APP CODE
========
/data/app/*                                             (user apps installation directory)
/data/app/*/base.apk                                    (original `.apk` file)
/data/app/*/lib//*.so                             (shared libraries)
/data/app/*/oat//base.[art|odex|vdex]             (compiled executable code)
/data/dalvik-cache//*.[art|dex|oat|vdex]               (compiled executable code, only for system apps)
/data/misc/profiles/cur///primary.prof         (ART profile)
/data/misc/profiles/ref//primary.prof                   (ART profile)

INTERNAL STORAGE
================
/data/user[_de]//                              getDataDir
/data/user[_de]///files                        getFilesDir
/data/user[_de]///[code_]cache                 getCacheDir or getCodeCacheDir
/data/user[_de]///databases                    getDatabasePath
/data/user[_de]///no_backup                    getNoBackupFilesDir
/data/user[_de]///shared_prefs                 getSharedPreferences

EXTERNAL STORAGE
================
/storage/emulated/obb//*.obb                            (shared by multi-users, exposed in following view)
/storage/emulated//Android/obb//*..obb    getObbDirs
/storage/emulated//Android/media/              getExternalMediaDirs
/storage/emulated//Android/data//             
/storage/emulated//Android/data//files         getExternalFilesDirs
/storage/emulated//Android/data//[code_]cache  getExternalCacheDirs
  • Todas las rutas anteriores en el almacenamiento interno y externo (primario y secundario) son directorios privados de la aplicación a los que puede acceder la aplicación respectiva sin solicitar ningún permiso. Las aplicaciones también pueden crear otros directorios (no disponibles explícitamente a través de API) en su almacenamiento privado. Todos estos directorios que pertenecen a una aplicación se eliminan cuando se desinstala la aplicación.

  • Además, las aplicaciones pueden colocar sus datos en cualquier lugar del almacenamiento externo primario (incluidos algunos directorios estándar y los directorios privados de otras aplicaciones) si WRITE_EXTERNAL_STORAGE se concede el permisogetExternalStorageDirectory devoluciones /storage/emulated/). Para almacenamiento externo secundario y almacenamiento extraíble se utiliza SAF. Vea los detalles en ¿Cómo guardar archivos en una tarjeta SD externa ?.

    Sin embargo, en Android 10, escribir directamente en el almacenamiento compartido externo primario está obsoleto (getExternalStorageDirectory y getExternalStoragePublicDirectory ya no están disponibles). Las aplicaciones deben utilizar uno de los proveedores de contenido integrados de Android; cualquiera MediaStore (para archivos multimedia) o SAF (para cualquier otro tipo de archivos).

  • /data los caminos pueden ser reemplazados con /mnt/expand/[UUID] al usar Adoptable Storage. /storage/emulated se reemplaza con /storage/[UUID] cuando se utiliza un almacenamiento externo secundario (como una tarjeta SD).

  • Para múltiples usuarios / perfiles es diferente, el propietario del dispositivo siempre es 0. /data/user/0 es un enlace simbólico a /data/data por razones históricas. El almacenamiento externo secundario solo está disponible para el propietario del dispositivo.

  • El directorio OBB se comparte entre usuarios / perfiles (hasta Android 9) para ahorrar espacio. FUSIBLE/sdcardfs siempre expone /storage/emulated/obb como /storage/emulated//Android/obb.

  • /data/user_de es el almacenamiento encriptado por dispositivo en dispositivos FBE que permite que ciertas aplicaciones se ejecuten al arrancar sin pedir las credenciales del usuario.

  • /data/misc/profiles ART los utiliza para la compilación guiada por perfiles del código de la aplicación.

  • La descripción de cada directorio es algo evidente a partir de los nombres, los detalles se pueden ver en la documentación de la API.

  • El sistema operativo borra los cachés cuando se está quedando sin almacenamiento, lo que mantiene las aplicaciones que exceden la cuota asignada en la parte superior.

  • Aplicaciones privadas files Los directorios en el almacenamiento externo no son escaneados automáticamente por MediaScanner pero media los directorios son.

  • Cachés y no_backup los directorios no están respaldados en la nube. Ver documentación oficial.

La respuesta a la pregunta que hace es demasiado grande. Sin embargo, puedo darte una respuesta básica que cubre los conceptos básicos.

Hay dos tipos de aplicaciones:
Raíz y sin raiz.

Raíz Las aplicaciones básicamente pueden almacenar / modificar archivos donde quieran.

Sin raiz las aplicaciones solo pueden almacenar / modificar archivos aquí: /sdcard/ y cada carpeta que viene después.
En su mayoría, las aplicaciones instaladas se almacenan en /sdcard/Android/data o /sdcard/Android/obb.
Algunas aplicaciones almacenan sus juegos guardados / archivos de datos de configuración en /sdcard/APPNAME/, o simplemente en el /sdcard/

Para poder usar raíz aplicaciones, deberá haber rooteado su dispositivo Android y haber otorgado permiso a una de las aplicaciones de superusuario.

Recuerda que tienes la opción de comentar tu experiencia si diste con el arreglo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *