De grands changements ont eu lieu dans le stockage sous Android 4.4 (voir Parcours du stockage d'Android). Ainsi, ce qui suit est généralement vrai pour Android 4.4+ et en particulier 6+.
Ceci provient de ma réponse détaillée à Comment l'espace disque est-il utilisé sur un appareil Android ? Les fichiers des applications sont enregistrés (par le système et l'application elle-même) dans le stockage interne et externe sous différentes catégories.
Répertoire
Description/API
Code de l'application
/data/app/*
(répertoire d'installation des applications utilisateur)
/data/app/*/base.apk
(fichier .apk
original)
/data/app/*/lib//*.so
(bibliothèques partagées)
/data/app/*/oat//base.[art|odex|vdex]
(code exécutable compilé)
/data/dalvik-cache//*.[art|dex|oat|vdex]
(code exécutable compilé, uniquement pour les applications système)
/data/misc/profiles/cur///primary.prof
(profil ART)
/data/misc/profiles/ref//primary.prof
(profil ART)
Stockage interne
/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
Stockage externe
/storage/emulated/obb//*.obb
(partagé par plusieurs utilisateurs, exposé dans la vue suivante)
/storage/emulated//Android/obb//*..obb
getObbDirs
/storage/emulated//Android/media/
getExternalMediaDirs
/storage/emulated//Android/data//
getExternalFilesDirs
/storage/emulated//Android/data//files
getExternalFilesDirs
/storage/emulated//Android/data//[code_]cache
getExternalCacheDirs
-
Tous les chemins ci-dessus dans le stockage interne et externe (primaire et secondaire) sont des répertoires privés de l'application accessibles à l'application respective sans demander d'autorisation. Les applications peuvent également créer d'autres répertoires (non explicitement disponibles via les API) dans leur stockage privé. Tous ces répertoires appartenant à une application sont supprimés lorsque l'application est désinstallée.
-
De plus, les applications peuvent placer leurs données n'importe où sur le stockage externe primaire (y compris certains répertoires standards et les répertoires privés d'autres applications) si l'autorisation WRITE_EXTERNAL_STORAGE
est accordée (getExternalStorageDirectory
renvoie /storage/emulated/
). Pour le stockage externe secondaire et le stockage amovible, SAF est utilisé. Voir les détails dans Comment enregistrer des fichiers sur une carte SD externe ?.
Cependant, dans Android 10, l'écriture directe sur le stockage partagé externe primaire est obsolète (getExternalStorageDirectory
et getExternalStoragePublicDirectory
ne sont plus disponibles). Les applications doivent utiliser l'un des fournisseurs de contenu intégrés à Android ; soit MediaStore (pour les fichiers multimédias) ou SAF (pour tout autre type de fichiers).
-
Les chemins /data
peuvent être remplacés par /mnt/expand/[UUID]
lors de l'utilisation du stockage adoptable. /storage/emulated
est remplacé par /storage/[UUID]
lors de l'utilisation du stockage externe secondaire (comme une carte SD).
-
Pour les utilisateurs/profiles multiples, est différent, le propriétaire de l'appareil est toujours 0
. /data/user/0
est un lien symbolique vers /data/data
pour des raisons historiques. Le stockage externe secondaire n'est disponible que pour le propriétaire de l'appareil.
-
Le répertoire OBB est partagé entre les utilisateurs/profiles (jusqu'à Android 9) pour économiser de l'espace. FUSE/sdcardfs
expose toujours /storage/emulated/obb
en tant que /storage/emulated//Android/obb
.
-
/data/user_de
est le stockage chiffré du périphérique sur les appareils FBE qui permet à certaines applications de s'exécuter au démarrage sans demander les informations d'identification de l'utilisateur.
-
/data/misc/profiles
est utilisé par ART pour la compilation guidée par profil du code des applications.
-
La description de chaque répertoire est assez évidente à partir des noms, les détails peuvent être consultés dans la documentation des API.
-
Les caches sont vidés par le système d'exploitation en cas de manque d'espace, en mettant en priorité les applications dépassant le quota alloué.
-
Les répertoires privés des applications dans le stockage externe ne sont pas automatiquement analysés par le MediaScanner mais les répertoires media
le sont.
-
Les caches et les répertoires no_backup
ne sont pas sauvegardés dans le cloud. Voir la documentation officielle.
1 votes
Voir aussi: Liste des dossiers spéciaux de la carte SD Android? / Est-il possible de réorganiser la carte SD ? Parce que c'est le bazar là-dedans / Quels répertoires puis-je supprimer dans la carte SD interne? / Vérifier l'espace de stockage utilisé par une application?
0 votes
Plus Hiérarchie des dossiers Android / Où sont stockés les messages SMS dans le système de fichiers? / Où sont installées les applications dans le système de fichiers?