1

アプリケーションがサーバーに接続するときに、どのアイコンが古いか、または欠落しているかを確認します。
これらのアイコンを sqllite データベースに保存します。アイコンはそれほど大きくなく、約 5 ~ 10kb です。

アクティビティが開始されるたびに、データベースにアクセスして必要なアイコンを取得します。

しかし、私のアクティビティの多くは同じアイコンを使用しているため、データベースからアイコンを一度取得し、アプリケーションを高速化するためにどこかにキャッシュすることを考えていました。

どうすればいいですか?

私はこのリンクを読んでいました: http://developer.android.com/training/displaying-bitmaps/cache-bitmap.htmlそして彼らはビットマップのlruCacheについて言及しました。

しかし、これは私が達成しようとしていることに対して少しやり過ぎではありませんか?

4

2 に答える 2

2

絶対にありません。LruCacheは、データをキャッシュするための適切なアプローチであり、画像のサイズは関係ありません。アプリケーション全体のどの要素からも等しくアクセスできるシングルトン要素としてキャッシュを作成することを忘れないでください。

一部の人が示唆するように、WeakReferenceを使用しないでください。これらはAndroidではうまく機能しません。検索気分の場合は、Androidチーム自身がWeakReferenceを使用しない理由とLruCacheを適切に使用する方法を説明しているYouTubeのGoogleIO2012の講演を確認できます。

編集

YouTubeリンクが見つかりました http://www.youtube.com/watch?v=gbQb1PVjfqM&feature=plcp

于 2012-10-29T12:50:19.520 に答える
1

あなたの質問は、メモリキャッシュを行う方法を尋ねているようには聞こえませんが、それを行うのが合理的かどうか. アプリケーションは、アイコンの読み込みがボトルネックになっているとすでに感じていますか? あなたのアプリケーションは他に何をしていますか? おそらくいくつかのネットワーキング?(すべてのアクティビティのうち) 実際にアイコンを持っているアクティビティはいくつありますか? アクティビティごとにいくつのアイコンがありますか? 全部でいくつのアイコンがありますか? @Budius の投稿から推測すると、メモリ キャッシュを正しく行うことは、Android では完全に単純な問題ではないため、不当に時期尚早な最適化を行っていないことを確認してください。

于 2012-10-29T13:04:59.500 に答える