2012-05-31 7 views
9

Android(SDK 7+)クラス用の単純なオープンソース非コピーレフトキャッシングを探しています。Android Object Cache

目的は、Bitmapを非同期にフェッチして格納することです(この機能をキャッシュクラスに含める必要はありません)。

私はこの目的のためにweakListを使用していましたが、当然のことながら悪い解決策でしたが、Guavaキャッシュはやや良いですがまだ良くありません。

キャッシュは、Bitmapだけでなく、シリアル化可能なObjectを格納でき、オブジェクトがキャッシュに追加されている間に使用された特定のタグのオブジェクトを簡単にパージできることが望ましいです。

最適なオプションは、sqliteデータベースをラップするようなファイルシステムキャッシュを取得することです。キャッシュは、私はあなたが点火と呼ばれる全体で使用して前にドロイド-FUとして知られているリファクタリングと本当に強力libが使用することをお勧めしますSettings >Manage Application > Clear Cache

+0

を表示し、バックグラウンドスレッドでそれらを処理します。 – kosa

答えて

8

上記の単純なLruCacheはインメモリキャッシュです。あなたの質問から、ディスクキャッシュソリューションを探しているように思えます。

キャッシングビットマップアンドロイドトレーニング文書のDisk Cacheを読んでください。

は、その後、次のスレッドで議論DiskLruCacheの実装を見てみましょう: Using DiskLruCache in android 4.0 does not provide for openCache method

あなたはGitHubの上DiskLruCacheソースをつかむことができます。

+2

私はこれをもう一度。 Jake Whartonは堅実な開発者です。 – shkschneider

1

によってクリアされるかどう はそれは素晴らしいことです。 イグニッションライブラリは主にQypeのMatthiasKäpplerリードモバイル開発者によって維持されています。ライブラリには、キャッシュフレームワークとRemoteImageウィジェット(さらに多くの便利なクラス)があります。さらに、Mavenは準備ができているので、依存関係を追加するのは簡単です。キャッシュを見てください。javadoc: http://kaeppler.github.com/ignition-docs/ignition-support/apidocs/

4

どうすればandroid.util.LruCache?古いプラットフォームをサポートする必要がある場合は、プロジェクトにコピーしてください。編集:実際にはcompat/supportライブラリにあります。

+0

Guavaのキャッシュはより柔軟に思えますが、今はランタイムではなくファイルシステムのキャッシュを使用したいと考えています。 –

+0

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html画像キャッシュのためのアンドロイドの議論に関する記事。 – krishnakumarp

3

ICSDiskLruCache.java。これはICS以降のバージョンのAndroidで利用可能なDiskLruCacheのポートで、IO 2012 Android Appの一部としてGoogleが公開しているため、少なくともAPIレベル7までのバージョンで動作します。

出典:http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.java

+4

リンクが壊れています。 – Matthew

+0

ファイルはhttps://github.com/google/iosched/blob/f4fd7504d43b25a75cc23b58d6f844f3553b48c3/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.javaにあります。 –

1

あなたはあなたのコードを与えるが、またそれがどのように動作するかを説明するだけでなく、この公式アンドロイドドキュメント以下の独自のイメージキャッシュを作成することができますビットマップをロードするから、彼らはまた、全体のプロセスを説明

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

トンは、Androidのための任意のキャッシュシステムが存在すると思います;、私はドンそれらをキャッシュし、それらに

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