画像を読み込むためにLazyListバージョンを使用しています。外部ストレージを使用していますが、悪くはありません。しかし、ファイルブラウザを持っているすべての人にそのファイルを表示しないために、代わりに内部メモリを使用することを考えました。そのためのメモリの最大量は(5mB)です。
私は何をすべきか?他に可能性はありますか?</ p>
画像を読み込むためにLazyListバージョンを使用しています。外部ストレージを使用していますが、悪くはありません。しかし、ファイルブラウザを持っているすべての人にそのファイルを表示しないために、代わりに内部メモリを使用することを考えました。そのためのメモリの最大量は(5mB)です。
私は何をすべきか?他に可能性はありますか?</ p>
AFAIKアプリケーションごとの内部メモリに制限はありません。ただし、ユーザーがデバイス上に多数のアプリを持っている場合、このメモリは通常少なくなるため、大きな(または多数の)ファイルには使用しないでください。
私は外部メモリ(SDカード)を使用し、画像への生のアクセスが問題になる場合は、次のようにします。
InputStream
バイトシャッフルを行う独自のバージョンを作成して、に渡すことができBitmapFactory.decodeStream(..)
ます。内部メモリは、だれにも改ざんされたくない小さなものに使用する必要があります。外部メモリ(通常はSDカード)には、他のアプリやユーザーがアクセスできます。ちなみに、内部メモリは「高価」であり、ユーザーは多くの内部メモリを使用するアプリをアンインストールする傾向があります。
外部メモリを使用する場合は、実際に使用可能であることを確認してください。SDカードが見つからない、排出されている、マウントされている、または存在しない可能性があります(すべてのAndroidデバイスにSDカードがあるわけではありません)。
アクセス速度は異なります。一部のSamsungデバイスの外部ストレージはかなり遅いのに対し、内部ストレージは非常に高速であるという事実を知っています。
別のオプションは、ネットワークから画像をロードすることです。また、将来変更する必要がある場合に備えて、それらを制御することもできます。アマゾンS3でそれらを収容することは月に約数セントかかるでしょう。
ファイルブラウザを使用しているすべての人にファイルを表示させたくない場合は、この「/sdcard/.hidden」のように前にドットを付けたフォルダを作成できます。ただし、非表示のファイルとフォルダの表示を切り替えると、運が悪くなります。
データの保存に関するAndroidページへのリンクはこちら
お役に立てれば