1. 展望
Androidの開発プロセスでキャッシュ機能を使用する場合、一般的にメモリやストレージの容量には限りがあるため、新しい要素を挿入して使用するスペースが限られている場合には、古い要素を削除する必要があります。
2、LRUキャッシュ
これはキャッシュ削除戦略であり、フルネームは最も最近使用されていないことを意味します。
主な考え方:データが最近アクセスされた場合、将来もアクセスされる可能性があります。一定のしきい値に達すると、キャッシュされたデータの量が大きくなりすぎないように、最近アクセスされていないデータが削除されます。
3. 実施方法
- リンクされたリストを使用して達成する
- 新しいデータが追加されました。チェーンヘッドを挿入します
- キャッシュで使用される場合、フェッチされたデータをチェーンの先頭に移動します
- リンクされたリストがいっぱいになると、チェーンの最後のデータが破棄されます。
4.Lruキャッシュ
画像キャッシュの削除戦略
- コンストラクターを通じて最大容量制限を設定する
- LinkedHashMap によるデータ ストレージ
- get メソッドを通じてキャッシュを読み取り、synchronized を通じてスレッド セーフ コード ブロックをロックして、ここで読み取り操作のスレッド セーフを確保します。
- put メソッドでキャッシュを書き込み、Map にデータを配置します。前のキー位置にデータがある場合は、現在のサイズから元のサイズを減算して put サイズを計算します。
- その後、
trimToSize
メソッドによって空間が再編成され、サイズが maxSize 未満になるまで、remove メソッドによって Map 内の以前の要素が継続的に削除され、空間の再編成が実現されます。
5、 DiskLruCache
ディスク上に LRU ストレージを実装するオープンソース ライブラリ