¿Dónde almacenan datos las aplicaciones de Android?


98

Respuestas:


92

Todas las aplicaciones (raíz o no) tienen un directorio de datos predeterminado, que es /data/data/<package_name>. Por defecto, las bases de datos de 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 SD ( 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 lo vuelven a hacer), 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.

Sin embargo, como Tom señaló , las aplicaciones raíz podrían almacenar sus datos en casi cualquier lugar en 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 más detalles sobre /data/data/<package_name>(y la 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 lo que básicamente es, hablado en términos de Linux) pueden colocar los archivos donde quieran. Por lo general, estos archivos y directorios solo son accesibles desde la aplicación en sí (y la raíz, por supuesto), que no sean los almacenados en la tarjeta SD, a los que todas las aplicaciones pueden acceder.


1
¿ /data/data/<name>/files/Dónde irían los archivos creados como se describe en developer.android.com/guide/topics/data/… ? Es decir, los que abrieron FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Nadie

Y solo en general, esta es una buena respuesta, pero ¿qué pasa con la adición de referencias a developer.android.com/guide/topics/data/… sobre qué directorio se correlaciona con la descripción abstracta / agnóstica de ruta?
Nadie

@ Nadie 2) porque esa página está fuertemente orientada al desarrollador, mientras que este sitio está orientado al usuario final. Lo mismo para 1) No soy desarrollador, y eso pide detalles de desarrollo. Lo siento.
Izzy

1
No tengo una tarjeta SD, y en mi Android Android 6 y 7, Whatsapp almacenan una gran cantidad de datos en /storage/emulated/0/WhatsApp/(subdirectorios .Shared, .trash, Backups, Databases, Media), incluyendo todos los medios de comunicación. No sé si esto es adicional a \data\data..., no puedo acceder a este directorio ahora. Quizás esto cambió entre versiones.
sancho.s

1
@Shayan el directorio raíz ( /) no se encuentra en la tarjeta SD. Tarjeta SD significa a continuación /sdcard(tarjeta interna, puntos /storage/emulated/<user>) o la ruta correspondiente de su tarjeta externa. Y no, no puedo explicar toda la ubicación posible que podría usar alguna aplicación, lo siento; AFAIK /data/misces administrado por el propio sistema Android, por lo que "meras aplicaciones" deberían tener acceso de lectura en el mejor de los casos. Nunca encontrado data/user_de(como es un camino relativo, no sé a qué te refieres de todos modos).
Izzy

9

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

Hay dos tipos de aplicaciones:
root y no root .

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

Las aplicaciones no root 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/datao /sdcard/Android/obb.
Algunas aplicaciones almacenan sus archivos de guardado de juegos / datos de configuración /sdcard/APPNAME/, o simplemente en el /sdcard/

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.