1 votes

Pourquoi les données d'une même application sont-elles stockées à des endroits différents ?

J'ai installé la même application sur

  • un appareil fonctionnant sous Android 7.0 ( non enraciné ) et

  • sur une tablette fonctionnant sous Android 4.4 ( Racine ),

mais j'ai tout de même remarqué que les données de l'application (bases de données/fichiers, etc.) sont stockées à des endroits différents sur chaque appareil :

Sur la tablette, les fichiers sont situés à l'adresse suivante : /storage/sdcard0/Android/data/com.packagename et peut être facilement manipulé (c'est-à-dire copié, sauvegardé, etc.) mais pas sur le smartphone, ce qui laisse probablement l'emplacement de stockage : /data/data/com.packagename à laquelle je n'ai pas accès.


Je comprends qu'il est généralement stocké sur /data/data ( stockage interne protégé des applications ) ou /storage/sdcard0/Android/data ( stockage sur la partition de stockage interne de l'utilisateur ), sinon sur une carte SD si elle est présente. Par ailleurs, une question connexe a été posée ici : Où les applications Android stockent-elles les données ?

Ma plus grande surprise est pourquoi cela se produit-il sur la même application (même version - sideloaded) ?

Ce site page de référence explique également comment un développeur peut configurer l'emplacement par défaut des données de l'application. Cela aurait été compréhensible s'il y avait différentes versions de l'application, mais ici je ne traite que de la même application (c'est-à-dire .apk ). Y a-t-il quelque chose qui m'échappe ici ou les choses ont-elles changé dans les versions récentes d'Android ?

Mon souci est que je ne peux pas accéder à ces fichiers sur /data/data sans Root et comme il s'agit de gros fichiers, je dois les sauvegarder au cas où les données de l'application seraient accidentellement effacées (ce que j'ai déjà fait par erreur :(.

Le plus important, c'est que je ne veux pas téléchargement continu encore une fois.

Note : Les deux appareils ont pas de stockage externe attaché.

D'après ce que l'on voit, le plus gros obstacle est de ne pas pouvoir accéder aux fichiers de l'ordinateur. /data/data (dispositif 1), donc pas de sauvegarde possible...(j'apprécierais s'il y a une autre solution de contournement fiable pour y parvenir )

1voto

Toutes les applications disposent d'un stockage privé dans le dossier /data prolongé. Certaines applications choisissent de stocker temporairement les données dans des emplacements publics. Je ne peux malheureusement pas dire avec certitude quels en ont été les résultats exacts, mais je sais que la façon dont les données partagées sont traitées a changé dans Android 7 pour des raisons de sécurité.

1voto

xavier_fakerat Points 9582

Aussi étrange que cela puisse paraître, j'ai réussi à trouver une solution à ce problème :

  • J'ai dû déplacer manuellement les données (fichiers) nécessaires à l'application à partir de /data/data à /Android/data (à l'exception de shared_preferences et le dossier de la base de données, c'est-à-dire la configuration normale).

  • Ensuite, j'ai configuré l'application pour qu'elle utilise un répertoire privé en modifiant le fichier userDefault.xml (peut-être différent selon l'application en question) et ajouter cette ligne de code nécessaire :

    <int name="app_private_dir"value_"1"/>

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X