画像をBLOBとしてsqliteデータベースに保存するのは良い考えかどうか疑問に思っていますか?誰かがパフォーマンスを持っていますか-画像(blob)の保存の経験がありますか?
私のAndroidアプリは小さなもので、20〜100枚の画像を処理する必要があります(画像あたり100 kb〜1 MB)。最悪の場合:私のデータベースは100MBのサイズに達する可能性があります。これはデータベースのパフォーマンスに大きな影響を与えますか?平均的なケース:私のアプリの平均的なユーザーは、画像あたり200 kbの画像を40枚持っていると思います。したがって、データベースのサイズは約8MBになります。ところで。もちろん、データベースには他の「通常の」データも格納されるため、画像データベースだけではありません:)
ストレージ(内部またはSDカード)に保存されているイメージへのパスを保存する方が良い方法ですか?データベースから画像ファイルのパスを取得し、ファイルから画像を開いて読み込むのは少し遅くなると思います(ただし、一度に2つの画像を読み込むだけでよいので、それほど重要ではありません)。
2番目の質問:2番目のアプローチ(イメージファイルへのパスをデータベースに保存し、イメージファイルをロードする)を使用する場合:このシナリオでは、ディスクキャッシュ(DiskLruCache)は便利ですか?パフォーマンスが大幅に向上しますか?私の理解では、ディスクキャッシュは(エンコードされたjpgまたはpngの代わりに)ビットマップを保存するため、ディスクキャッシュは保存から直接ビットマップをロードし、私のアプリは画像(jpgまたはpng)をデコードする時間を節約します。あれは正しいですか?ところで。「データベースアプローチ」では、すでにデコードされた画像をビットマップとして保存します。それで、私にはディスクキャッシュに似たもののように見えますね。
編集:私はあなたに言うのを忘れました、私はデバイスに永続的な画像を保存する必要があると。たとえば、Webサービスから取得した画像のキャッシュについては話していません...