0

プロフィール写真のようなものを利用する小さなソーシャル ネットワーキング アプリを開発しています。画像はサーバーに保存され、各ユーザーの画像をアプリに送信するスクリプトが設定されています。アプリは各ユーザーの画像ビューに表示し、画像を外部ストレージに保存します。私が現在実装している方法は、アプリがサーバーから画像をダウンロードした後に画像が必要になると、ユーザーが新しい画像をアップロードしない限り、アプリは外部ストレージから画像を取得することです (これは再ダウンロードするよりも速いと思いました)毎回サーバーから)。ただし、サーバーからファイルを取得するよりも、外部ストレージからファイルを取得するのに時間がかかるようです (サーバーはかなり遅く、3 フロア離れた場所から Wi-Fi で実行されています...予算の制約:))。

私の質問は、ユーザーが新しい画像をアップロードしていない場合、これらの画像を取得する最速の方法は何ですか. 毎回サーバーからダウンロードする必要がありますか(そうではないと思います)、ファイルシステムに画像を保存するためのより良い場所があり、より高速に取得できますか?

4

1 に答える 1

2

SD カードからの画像の読み込みは非常に高速です。いくつかの戦略:

  1. 1 回だけ実行 - アクティビティまたはアプリケーションの開始時に画像を非同期的にメモリに読み込みます。ビューが更新されるたびに SD カードにアクセスする必要はありません。
  2. サムネイルを小さくする - リストにサムネイルを表示する際にパフォーマンスに問題がある場合は、inSampleSizeを使用してサムネイルを小さな画像として保存し、デコーダーへの負担を軽減してください。
  3. 内蔵メモリを使う-内蔵メモリの方が速いと思いますが、品薄になりがちです。ステップ 1 を高速化するために、キャッシュ ディレクトリにいくつかのサムネイルを保存することもできます。
  4. パフォーマンスよりも応答性- 黄金律は、絶対的なパフォーマンスが常に応答性と相関するとは限らないことを覚えておくことです。画像の読み込みに時間がかかる場合でも、画像を読み込むタイミングを賢く選択することで、ユーザーの速度に対する認識に大きな影響を与えることができます。
于 2011-04-06T02:26:31.070 に答える