Android SoftReferenceに基づいて画像をキャッシュする方法
本明細書の例では、AndroidがSoftReferenceキャッシュに基づいて画像をキャッシュする方法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
JavaのSoftReferenceはオブジェクトのソフト参照です。もしオブジェクトがソフト参照を持っていれば、メモリのスペースが十分です。ゴミ回収器は回収されません。メモリ容量が足りないと、これらのオブジェクトのメモリが回収されます。ゴミ回収器が回収されていない限り、対象はプログラムで使用できます。ソフト参照は、メモリに敏感なキャッシュを実現するために使用することができます。ソフト参照を使うとメモリのリークを防ぎ、プログラムのロバスト性を高めることができます。
SoftReferenceの特徴は、Javaオブジェクトに対するソフト引用を例として保存することであり、このソフト引用の存在は、ごみ収集スレッドがJavaオブジェクトに対する回収を妨げない。つまり、一旦ソフトレferenceがJavaオブジェクトに対するソフト参照を保存したら、このJavaオブジェクトに対してゴミスレッドが回収される前に、SoftReferenceクラスが提供するget()方法はJavaオブジェクトの強い参照に戻る。また、ゴミ箱スレッドがこのJavaオブジェクトを回収すると、get()メソッドはnullに戻ります。
Mapセットでキャッシュされたソフト参照Bitmapオブジェクト:
Android関連の内容についてもっと興味がある読者は、当駅のテーマを調べてもいいです。「Androidキャッシュ操作テクニックのまとめ」、「Android開発のメモリとキャッシュテクニックのまとめ」、「Androidパターンと画像処理技術のまとめ」、「Android開発入門と上級教程」、「Androidデバッグ技術とよくある問題解決方法のまとめ」、「Androidマルチメディア操作技術まとめ(オーディオ、ビデオ、録音など)」、「Android基本コンポーネントの使い方のまとめ」、「AndroidビューViewテクニックのまとめ」、「Androidレイアウトlayout技巧まとめ」、「Androidコントロールの使い方のまとめ」
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。
JavaのSoftReferenceはオブジェクトのソフト参照です。もしオブジェクトがソフト参照を持っていれば、メモリのスペースが十分です。ゴミ回収器は回収されません。メモリ容量が足りないと、これらのオブジェクトのメモリが回収されます。ゴミ回収器が回収されていない限り、対象はプログラムで使用できます。ソフト参照は、メモリに敏感なキャッシュを実現するために使用することができます。ソフト参照を使うとメモリのリークを防ぎ、プログラムのロバスト性を高めることができます。
SoftReferenceの特徴は、Javaオブジェクトに対するソフト引用を例として保存することであり、このソフト引用の存在は、ごみ収集スレッドがJavaオブジェクトに対する回収を妨げない。つまり、一旦ソフトレferenceがJavaオブジェクトに対するソフト参照を保存したら、このJavaオブジェクトに対してゴミスレッドが回収される前に、SoftReferenceクラスが提供するget()方法はJavaオブジェクトの強い参照に戻る。また、ゴミ箱スレッドがこのJavaオブジェクトを回収すると、get()メソッドはnullに戻ります。
Mapセットでキャッシュされたソフト参照Bitmapオブジェクト:
Map<String, SoftReference<Bitmap>> imageCache = new new HashMap<String, SoftReference<Bitmap>>();
// Bitmap
Bitmap bitmap = BitmapFactory.decodeStream(InputStream);
// Bitmap
SoftReference<Bitmap> bitmapcache = new SoftReference<Bitmap>(bitmap);
// Map
imageCache.put("1",softRbitmap);
..
.
// Bitmap
SoftReference<Bitmap> bitmapcache_ = imageCache.get("1");
// Bitmap , Bitmap ,
Bitmap bitmap_ = bitmapcache_.get();
注:もしプログラムに大量の画像をオンラインで読み込む必要がある場合は、sdcard上に臨時フォルダを作成してキャッシュすることを考慮します。Android関連の内容についてもっと興味がある読者は、当駅のテーマを調べてもいいです。「Androidキャッシュ操作テクニックのまとめ」、「Android開発のメモリとキャッシュテクニックのまとめ」、「Androidパターンと画像処理技術のまとめ」、「Android開発入門と上級教程」、「Androidデバッグ技術とよくある問題解決方法のまとめ」、「Androidマルチメディア操作技術まとめ(オーディオ、ビデオ、録音など)」、「Android基本コンポーネントの使い方のまとめ」、「AndroidビューViewテクニックのまとめ」、「Androidレイアウトlayout技巧まとめ」、「Androidコントロールの使い方のまとめ」
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。