/ / Comment stocker en privé un grand volume de données dans Android? - android, stockage, confidentialité, android-external-storage, stockage interne

Comment stocker en privé un volume de données important dans Android? - Android, stockage, confidentialité, stockage externe Android, stockage interne

La question est de savoir comment puis-je stocker une grande quantité de données (plusieurs centaines de Mo et plus) et les garder simultanément disponibles uniquement pour mon application?

Le stockage interne, comme je l'ai découvert, est limité et sa taille dépend du modèle d'appareil. Pourrait-il être suffisant pour le stockage de gros volumes de données? Puis-je stocker 500 Mo et plus dans la mémoire interne?

L'alternative consiste à utiliser un stockage externe. Comme je le sais, le stockage externe ne limite pas une application et il peut utiliser l’ensemble du stockage externe. Cependant, les données deviennent disponibles pour les utilisateurs et d’autres applications et c’est inacceptable dans mon cas. Y at-il un moyen de créer des données qui stockage externe, privé comme si il stocke dans un interne?

Réponses:

1 pour la réponse № 1

Le stockage interne, comme je l'ai découvert, est limité et sa taille dépend du modèle d'appareil.

Seulement sur Android 1.x / 2.x. Sur le vaste la majorité des appareils Android 3.0+, le stockage interne et externe sont sur la même partition et ont donc la même quantité d'espace.

Puis-je stocker 500 Mo et plus dans la mémoire interne?

Sur Android 3.0+, probablement. L’utilisateur peut ne pas disposer de 500 Mo d’espace libre, mais il ne s’agit pas d’une limitation de la mémoire interne, mais simplement d’une limitation de la "mémoire" en général.

Existe-t-il un moyen de rendre privées les données stockées dans la mémoire externe, comme si elles étaient stockées dans la mémoire interne?

Pas vraiment. Vous ne pouvez pas empêcher l'utilisateur ou d'autres applications de supprimer ces fichiers, par exemple. Vous pouvez utiliser la bibliothèque "Dissimulation" de Facebook pour chiffrer les fichiers sur un stockage externe, avec une clé de chiffrement générée stockée sur un stockage interne, afin d'empêcher les utilisateurs ou d'autres applications de modifier le contenu des fichiers (autrement qu'en les corrompant). Cependant, Là encore, cela ne serait pertinent que si vous continuez de supporter Android 1.x / 2.x; sur Android 3.0+, utilisez uniquement le stockage interne.


0 pour la réponse № 2

compte tenu des contraintes que vous rencontrez, vous avez deux approches possibles.

  • utilisez la mémoire de stockage interne, mais assurez-vous de vérifier la mémoire disponible et chaque fois que l'appareil ne peut pas "le gérer", il s'agit de laisser vos utilisateurs savoir que leur appareil ne peut pas exécuter votre application.
  • utilisez la mémoire externe et construisez un cryptage agréable dessus. Ainsi, même si quelqu'un d'autre récupérait les fichiers, les données qui s'y trouvent n'auraient aucune signification sans le mécanisme de décryptage approprié.

quelle option choisir est une décision de produit.


0 pour la réponse № 3

Vous pouvez utiliser getExternalFilesDir() pour empêcher le fournisseur de contenu de magasin de médias de lire les fichiers spécifiques à votre application à partir d'un stockage externe. Mais je pense que toute autre application avec la même permission de READ_EXTERNAL_STORAGE peut accéder aux fichiers. Le seul moyen est d'utiliser la mémoire interne.

Je ne suis pas sûr du type de fichiers que vous souhaitez stocker. Si les fichiers sont moins nombreux, vous pouvez envisager d'utiliser une base de données, même si cela enfreint le principe ACID. Sinon, vous pouvez envisager de limiter en utilisant des fournisseurs de contenu.