Respuesta

Todas las aplicaciones (raíz o no) tienen un directorio de datos predeterminado, que es /data/data/<package_name>. 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 tarjeta SDCard (Android/data/<package_name>).

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 los nombres de directorio libremente (y de nuevo lo hacen), que es lo que a menudo hace que sea difícil decidir para qué está destinado toda esa «basura» en la tarjeta y qué se puede eliminar.

Sin embargo, como Tom señaló , las aplicaciones raíz pueden almacenar sus datos en casi cualquier lugar 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 /data/data/<package_name> (y la parte SD correspondiente):

  • databases/: aquí están 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, hablado en Linux) pueden colocar archivos donde quieran. Por lo general, estos archivos y directorios solo son accesibles por la aplicación misma (y la raíz, por supuesto) – distintos de los almacenados en la SDCard, a los que pueden acceder todas las aplicaciones.

Comentarios

  • Los comentarios no son para una discusión extensa; esta conversación tiene se movido al chat .

Responder

Se produjeron algunos cambios importantes en el almacenamiento en Android 4.4 (consulte Viaje de almacenamiento de Android ). Entonces, lo siguiente es generalmente cierto 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 aplicación en sí) en el almacenamiento interno y externo en diferentes categorías.

DIRECTORY DESCRIPTION / API ===================================================================================== APP CODE ======== /data/app/<pkg>* (user apps installation directory) /data/app/<pkg>*/base.apk (original `.apk` file) /data/app/<pkg>*/lib/<arch>/*.so (shared libraries) /data/app/<pkg>*/oat/<arch>/base.[art|odex|vdex] (compiled executable code) /data/dalvik-cache/<arch>/*.[art|dex|oat|vdex] (compiled executable code, only for system apps) /data/misc/profiles/cur/<user_id>/<pkg>/primary.prof (ART profile) /data/misc/profiles/ref/<pkg>/primary.prof (ART profile) INTERNAL STORAGE ================ /data/user[_de]/<user_id>/<pkg> getDataDir /data/user[_de]/<user_id>/<pkg>/files getFilesDir /data/user[_de]/<user_id>/<pkg>/[code_]cache getCacheDir or getCodeCacheDir /data/user[_de]/<user_id>/<pkg>/databases getDatabasePath /data/user[_de]/<user_id>/<pkg>/no_backup getNoBackupFilesDir /data/user[_de]/<user_id>/<pkg>/shared_prefs getSharedPreferences EXTERNAL STORAGE ================ /storage/emulated/obb/<pkg>/*.obb (shared by multi-users, exposed in following view) /storage/emulated/<user_id>/Android/obb/<pkg>/*.<pkg>.obb getObbDirs /storage/emulated/<user_id>/Android/media/<pkg> getExternalMediaDirs /storage/emulated/<user_id>/Android/data/<pkg>/ /storage/emulated/<user_id>/Android/data/<pkg>/files getExternalFilesDirs /storage/emulated/<user_id>/Android/data/<pkg>/[code_]cache getExternalCacheDirs 
  • Todo lo anterior Las rutas 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 otras aplicaciones» directorios privados «) si WRITE_EXTERNAL_STORAGE se concede permiso (getExternalStorageDirectory devuelve /storage/emulated/<user_id>). Para el almacenamiento externo secundario y el almacenamiento extraíble se utiliza SAF. Consulte los detalles en ¿Cómo guardar archivos en una tarjeta SD externa? .

    Sin embargo, en Android 10, escribir directamente en el almacenamiento compartido externo principal está obsoleto (getExternalStorageDirectory y getExternalStoragePublicDirectory son no hay más disponible). Las aplicaciones deben utilizar uno de los proveedores de contenido integrados de Android; MediaStore (para archivos multimedia) o SAF (para cualquier otro tipo de archivos).

  • pueden ser reemplazadas por /mnt/expand/[UUID] cuando se usa Adoptable Storage. /storage/emulated se reemplaza por /storage/[UUID] cuando se usa un almacenamiento externo secundario (como una tarjeta SD).

  • Para varios usuarios / perfiles, <user_id> es diferente, el propietario del dispositivo es siempre 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.

  • aña El directorio OBB se comparte entre usuarios / perfiles (hasta Android 9) para ahorrar espacio. FUSE / sdcardfs siempre expone /storage/emulated/obb como /storage/emulated/<user_id>/Android/obb.
  • /data/user_de es el almacenamiento encriptado del dispositivo en los dispositivos FBE que permite que ciertas aplicaciones se ejecuten en el arranque sin solicitar las credenciales del usuario.

  • /data/misc/profiles son utilizados por ART para 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 las cachés cuando se está agotando el almacenamiento, lo que mantiene las aplicaciones que exceden la cuota asignada en la parte superior.

  • Aplicaciones «privadas files los directorios del almacenamiento externo no son «escaneados automáticamente por MediaScanner , pero los directorios media sí.

  • Las cachés y los directorios no_backup no se respaldan en la nube. Consulte la documentación oficial .

Respuesta

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:
Root y no root .

Root las aplicaciones básicamente pueden almacenar / modificar archivos donde quieran. Las aplicaciones

no root solo pueden almacenar / modificar archivos aquí: /sdcard/ y todas las carpetas posteriores.
En su mayoría, las aplicaciones instaladas se almacenan en /sdcard/Android/data o /sdcard/Android/obb.
Algunas las aplicaciones almacenan sus juegos guardados / archivos de datos de configuración en /sdcard/APPNAME/, o simplemente en /sdcard/

Para poder usar root aplicaciones, necesitará haber rooteado su dispositivo Android y haber dado permiso a una de las aplicaciones de superusuario.

Deja una respuesta

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