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 ?

39voto

Tamas Points 301

Vous pouvez utiliser cette commande pour lister les fichiers de votre propre apk débuggable :

adb shell run-as com.corp.appName ls /data/data/com.corp.appName/cache

Et ce script pour tirer du cache :

#!/bin/sh
adb shell "run-as com.corp.appName cat '/data/data/com.corp.appNamepp/$1' > '/sdcard/$1'"
adb pull "/sdcard/$1"
adb shell "rm '/sdcard/$1'"

Ensuite, vous pouvez extraire un fichier du cache comme ceci :

./pull.sh cache/someCachedData.txt

La racine n'est pas nécessaire.

19voto

Darush Points 3150

Dans Android Studio, vous pouvez utiliser Device File Explorer pour voir /data/data/your_app_package/cache .

Cliquez sur View > Tool Windows > Device File Explorer ou cliquez sur le bouton Device File Explorer dans la barre de la fenêtre d'outils pour ouvrir l'Explorateur de fichiers du dispositif.

Documentation

16voto

Chris Stratton Points 23061

À moins que ADB ne s'exécute en tant que Root (comme c'est le cas sur un émulateur), vous ne pouvez généralement pas voir ce qui se trouve sous /data, à moins qu'une application qui en est propriétaire ne l'ait rendu lisible. De plus, vous ne pouvez pas parcourir la structure des répertoires - vous ne pouvez lister les fichiers qu'une fois que vous êtes dans un répertoire auquel vous avez accès, en entrant explicitement son chemin.

En gros, vous avez cinq possibilités :

  • Faites l'enquête dans l'application propriétaire

  • Marquez les fichiers en question comme publics, et utilisez quelque chose (adb shell ou adb pull) où vous pouvez entrer un nom de chemin complet, au lieu d'essayer de parcourir l'arbre.

  • Demandez à l'application propriétaire de copier le répertoire entier sur la carte SD.

  • Utilisez un émulateur ou un appareil enraciné où adb (et donc l'accès au navigateur ddms) peut fonctionner en tant que Root (ou utilisez un explorateur de fichiers Root ou un appareil enraciné).

  • utiliser adb et l'outil run-as avec un apk débuggable pour obtenir une ligne de commande s'exécutant sous l'identité de l'utilisateur de l'application. Pour ceux qui sont familiers avec la ligne de commande Unix, cela peut être le plus efficace (bien que la boîte à outils sh sur Android soit limitée et utilise son petit vocabulaire de messages d'erreur de manière trompeuse).

5voto

Cassendra44 Points 190

Vous pouvez vérifier les données spécifiques à l'application dans votre émulateur comme suit,

  1. Exécuter adb shell dans cmd
  2. Aller à /data/data/ et naviguez dans votre application

Vous y trouverez les données du cache et les bases de données spécifiques à votre application.

3voto

df3ct Points 31

Question : Où se trouve le cache spécifique aux applications sur Android ?

Réponse : : /données/données

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