10
votes

Cache d'objets Android

Vous recherchez une simple mise en cache non-CopyLeft de la classe Android (SDK 7+).

Le but est primaire de stocker le bitmap S récupéré asynchrone (donc je n'ai pas besoin de cette fonctionnalité à inclure dans la classe de cache).

J'utilisais une faibliste à cette fin, c'était naturellement une mauvaise solution, avec la cache de Guava qui est un peu mieux mais toujours pas bien.

Il est préférable que le cache soit capable de stocker n'importe quel objet Serializable , pas seulement un bitmap , et que je pourrais facilement purger les objets de certaines balises utilisées pendant que l'objet est ajouté au cache.

La meilleure option serait d'obtenir le cache de système de fichiers comme en appelant la base de données SQLITE. Ce serait génial si le cache serait effacé par Paramètres> Gérer l'application> Clear Cache


1 commentaires

Je ne pense pas qu'il existe un système de cache pour Android.


7 Réponses :



1
votes

Je vous recommanderais d'utiliser le large utilisé et précédemment connu sous le nom de Droid-Fu le refactored et vraiment puissant libégnement appellé à l'allumage. La bibliothèque d'allumage est principalement maintenue par Matthias Käppler Dirige Mobile Dev de Qype. La bibliothèque a un framework cache et un widget à distance (et de nombreuses autres classes utiles). De plus, Maven est prêt, il est donc facile d'ajouter la dépendance. Jetez un coup d'œil au cache Javadoc: http://kaeppler.github.com/Intion-Docs/ignition-support/ apidocs /


0 commentaires

4
votes

Comment sur android.util.luculache ? Si vous devez prendre en charge les plateformes anciennes, copiez-le simplement dans votre projet. EDIT: C'est en fait dans la bibliothèque Compat / Support.


2 commentaires

Le cache de goyaves semble être plus flexible et je préférerais maintenant utiliser le cache de système de fichiers, mais que vous préférez.


développeur.android.com/training/displaying-bitmaps/... Un article sur Android discutant des options pour la mise en cache d'images.



9
votes

Le laucache ordinaire suggéré ci-dessus est un cache en mémoire. De votre question, on dirait que vous recherchez une solution de cache de disque.

lire le cache de disque de La Caching Bitmaps Android Training Doc.

Regardez ensuite la mise en œuvre du disklrucache discutée sur le thread suivant: DiskLrucache source sur github.


1 commentaires

Je seconde cela. Jake Wharton est un développeur solide.



3
votes

icsdisklrucache.java. Il s'agit d'un port du disklrucache disponible dans ICS et des versions ultérieures d'Android, Open-Sourced par Google dans le cadre de l'application Android de l'IO 2012 afin qu'elle fonctionne avec des versions à (au moins) au niveau de l'API 7.

Trouver la source sur http://code.google.com/p/iSched/source/browse/andrroid/src/com/googled/androïde/apps/iosched/util/icsdisklrucache.java


1 commentaires

Le fichier peut être trouvé à l'adresse suivante: GITUB.COM /GOOGE/IBRED/BLOB/...



2
votes

Allumage est que recherchez-vous: https://github.com/kaeppler/ignition . Il vous permet de cacher des images, des objets sérialisés. Pour l'encaissement, travailler avec support d'allumage

Voici l'API pour le support d'allumage: http: //kaepppler.github. com / allumage-docs / allumage-support / apidocs / .


0 commentaires

1
votes

Vous pouvez créer votre propre cache d'image à la suite de cette documentation officielle Android qui vous donne non seulement le code, mais explique également comment cela fonctionne:

http://developer.android.com/training/displaying- bitmaps / cache-bitmap.html

Ils expliquent également tout le processus, de chargement de bitmaps, de les traiter dans un fil d'arrière-plan, de la mettre en cache et de les afficher

http://developer.android.com/training/displaying-bitmaps/ index.html


0 commentaires