Où les applications Android stockent-elles des données?


98

Pourriez-vous énumérer tous les répertoires possibles dans lesquels les applications Android peuvent stocker des données, en fournissant une description du type de données stockées dans chaque répertoire?



Réponses:


92

Toutes les applications (racine ou non) ont un répertoire de données par défaut, à savoir /data/data/<package_name>. Par défaut, les bases de données des applications, les paramètres et toutes les autres données sont accessibles ici. Si une application s'attend à ce que d'énormes quantités de données soient stockées, ou pour d'autres raisons, veuille «être agréable pour le stockage interne», il existe un répertoire correspondant sur la SDCard ( Android/data/<package_name>).

En dehors de cela, toutes les applications peuvent stocker des données n'importe où sur la carte SD, car il n'y a aucune restriction - et de nombreuses applications le font. Ils peuvent utiliser les noms de répertoires librement (et ils le font à nouveau), ce qui rend souvent difficile la tâche de décider à quoi sert tout ce "courrier indésirable" de la carte et ce qui peut être supprimé.

Cependant, comme l'a souligné Tom , les applications root peuvent stocker leurs données presque partout sur votre appareil, elles suivent généralement les mêmes règles que les autres applications.

Vous trouverez une explication générale de la hiérarchie des répertoires Android dans ma réponse ici . Pour votre question spécifique, je pourrais ajouter quelques détails supplémentaires sur /data/data/<package_name>(et la partie SD correspondante):

  • databases/: voici les bases de données de l'application
  • lib/: bibliothèques et aides pour l'application
  • files/: autres fichiers associés
  • shared_prefs/: préférences et paramètres
  • cache/: bien, caches

Il pourrait y avoir plusieurs autres répertoires à cet endroit, ou moins - tout dépend de l'application. Dans son propre "répertoire personnel" (et c'est en gros ce qu'il est, parlé de Linux), ils peuvent placer les fichiers où ils veulent. Habituellement, ces fichiers et répertoires ne sont accessibles que par l'application elle-même (et par la racine bien sûr), à l'exception de ceux stockés sur la carte SD, qui sont accessibles par toutes les applications.


1
Est-ce /data/data/<name>/files/que les fichiers créés comme décrit dans developer.android.com/guide/topics/data/… iraient? C'est-à-dire ceux ouverts avec FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Personne

En général, c’est déjà une bonne réponse, mais qu’en est-il de l’ajout de références à developer.android.com/guide/topics/data/… à propos de quel répertoire correspond à quelle description abstraite / path-agnostic il?
Personne

@Nobody 2) parce que cette page est fortement orientée développeur, alors que ce site est orienté utilisateur final? Idem pour 1) Je ne suis pas un développeur et cela demande des détails sur le développement. Pardon.
Izzy

1
Je n'ai pas une carte SD, et dans mon Android 6 et Android 7, WhatsApp stocké beaucoup de données dans /storage/emulated/0/WhatsApp/(subdir .Shared, .trash, Backups, Databases, Media), y compris tous les médias. Je ne sais pas si cela s'ajoute \data\data..., je ne peux pas accéder à ce répertoire maintenant. Peut-être que cela a changé entre les versions.
dimanche

1
@ Shayan le répertoire racine ( /) ne se trouve pas sur la carte SD. Carte SD signifie ci-dessous /sdcard(carte interne, pointe vers /storage/emulated/<user>) ou le chemin correspondant de votre carte externe. Et non, je ne peux pas expliquer tous les emplacements possibles qu'une application pourrait utiliser, désolé; Autant que je sache /data/miscest géré par le système Android lui-même, les "simples applications" devraient au mieux y avoir un accès en lecture. Jamais rencontré data/user_de(comme c'est un chemin relatif, je ne sais pas où tu veux dire quand même).
Izzy

9

La réponse à votre question que vous posez est trop grande. Je peux cependant vous donner une réponse de base qui couvre les bases.

Il existe deux types d'applications:
root et non root .

Les applications racines peuvent essentiellement stocker / modifier des fichiers où elles veulent.

Les applications non root peuvent uniquement stocker / modifier des fichiers ici: /sdcard/et chaque dossier ultérieurement.
Généralement, les applications installées se stockent à /sdcard/Android/dataou /sdcard/Android/obb.
Certaines applications stockent leurs jeux de sauvegarde / fichiers de données de configuration sur /sdcard/APPNAME/, ou simplement sur le. /sdcard/

Pour pouvoir utiliser les applications root , vous devez avoir rooté votre appareil Android et avoir obtenu l'autorisation de l'une des applications de super-utilisateur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.