2010-11-02 7 views
4

Je développe une petite application de base de données Android. Associé aux enregistrements dans la base de données est un certain nombre d'images (la résolution de l'image sera probablement la même que l'écran sur l'appareil), il pourrait y avoir jusqu'à 20 images par enregistrement. Où serait le meilleur endroit pour stocker les images. Je pense soit à la base de données elle-même ou sur la carte SD. Je suis assez nouveau sur Android et je ne suis pas encore vraiment sûr de ce que je fais.stocker des images sur android

Répondre

4

Bien qu'il soit possible de placer l'image elle-même dans la base de données (sous forme de blob), autant que je sache, ce n'est pas la meilleure pratique.

De quelle taille sont les images dont vous parlez? Vous avez dit à propos de la résolution de l'écran, mais avec la compression, ils pourraient être assez petits. Si elles sont relativement petites, envisagez d'utiliser le cache interne du téléphone (trouvé à l'aide de getCacheDir() à partir d'un contexte). Cela a également le bonus supplémentaire de permettre à l'utilisateur de supprimer le cache du menu de l'application, et vos images seront privées à votre application. La documentation Android suggère environ un plafond de 1 Mo sur le cache interne.

Si elles sont trop volumineuses pour être stockées dans le cache interne, la carte SD peut être votre seule option. L'inconvénient est que ces images seront visibles par les autres applications, elles peuvent être supprimées, supprimées, renommées, etc. Vous ne pouvez pas garantir qu'elles seront comme elles étaient quand vous les avez quittées.

3

Dans mon application, j'ai été obligé de stocker des images dans SQLite sous forme de blobs. Taille de blob dans SQLite limitée en théorie par 2 concerts - mais manuel recommends to use only few megs blobs taille. Donc, je suis en train de découper les images stockées. Du point de vue des performances - tout est OK

Quoi qu'il en soit, je suis sûr que le stockage d'images dans la base de données est plus attrayant que d'autres moyens exotiques. Par exemple. personne ne peut prédire la capacité de la carte SD ou même sa présence à bord.

Questions connexes