37 votes

Comment afficher le cache spécifique d'une application Android ?

Existe-t-il un moyen d'afficher dynamiquement le cache spécifique à une application dans Android ? J'enregistre des images dans le cache (/data/data/my_app_package/cache) et je suis sûr à 99 % qu'elles y sont enregistrées, mais je ne sais pas combien de temps elles y restent.

Lorsque je regarde dans le cache en utilisant l'explorateur de fichiers DDMS dans Eclipse, il est toujours vide. J'ai également essayé d'examiner le répertoire de cache approprié dans ADB et là encore, il est toujours vide.

Des suggestions ?

2voto

sultan.of.swing Points 480

Les fichiers en cache sont effectivement stockés dans /data/data/my_app_package/cache

Veillez à stocker les fichiers en utilisant la méthode suivante :

String cacheDir = context.getCacheDir();
File imageFile = new File(cacheDir, "image1.jpg");
FileOutputStream out = new FileOutputStream(imageFile);
out.write(imagebuffer, 0, imagebufferlength);

où imagebuffer[] contient des données d'image au format octet et imagebufferlength est la longueur du contenu à écrire dans le FileOutputStream.

Maintenant, vous pouvez regarder l'explorateur de fichiers DDMS ou faire un "adb shell" et cd à /data/data/my_app_package/cache et faire un "ls". Vous trouverez les fichiers images que vous avez stockés par code dans ce répertoire.

De plus, d'après la documentation d'Android :

Si vous souhaitez mettre en cache certaines données, plutôt que de les stocker de manière persistante, vous devez utiliser getCacheDir() pour ouvrir un fichier qui représente le répertoire interne dans lequel votre application doit enregistrer les fichiers de cache temporaires.

Lorsque l'appareil ne dispose que de peu d'espace de stockage interne, Android peut supprimer ces fichiers cache pour récupérer de l'espace. Cependant, vous ne devez pas compter sur le système pour nettoyer ces fichiers à votre place. Vous devez toujours gérer vous-même les fichiers cache et rester dans une limite raisonnable d'espace consommé, par exemple 1 Mo. Lorsque l'utilisateur désinstalle votre application, ces fichiers sont supprimés.

0voto

Eastern Killer Points 43

Voici le code : remplacer nom du paquet par le nom de votre paquet spécifique.

Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setData(Uri.parse("package:package_name"));
startActivity(i);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X