[Android Traffic]重複したダウンロードを避けるためにキャッシュを使用します.
4268 ワード
転載元: http://blog.csdn.net/kesenhoo/article/details/7395817
Redundent Downloads are Redundent[繰り返しダウンロードは冗長です]ダウンロードを減らす最も基本的な方法は、あなたが必要としている「アメリカ人の考えはやはり直接的で、この言葉は面白そうですが、道理があります」だけをダウンロードすることです.データの観点から、前回の更新時間のようなパラメータを伝えることによって、いくつかのデータを調べることができます. 同様に、画像をダウンロードする時、serverの方が画像のサイズを減らすことができます. Cache Files Locally[キャッシュファイルをローカルに]は重複したデータのダウンロードを避けることが重要である.この問題はキャッシュ機構を使用して処理できます.キャッシュされたstaticのリソース、例えば完全な画像.これらのキャッシュのリソースは別々に保存する必要があります. は、キャッシュによる表示が古いデータではないことを保証するために、最新のデータをキャッシュから取得してください.データが失効した場合、更新を促すことがあります. は、この方法を使用して、キャッシュ内で常に最新のデータであることを保証することができる. は、外部キャッシュのディレクトリを取得するために、以下の方法を用いることができる. は、内部キャッシュを取得する方法です.メモリに保存されているデータは内部空間が足りないため、消去される可能性があります. どこに保管されているファイルもappがアンインストールされた時に消去されます. Use the HttpURLConnection Resonse Cache[HttpURLConnection Resonseキャッシュを使う]はAndroid 4.0の中でHttpURLConnectionのためにreponse cacheを追加しました.反射機構を使ってHTTP reponse cacheをオープンできます.以下の例を見てください. 上のsample codeはAndroid 4.0以上のデバイスでreponse cacheを起動し、同時に前のプログラムに影響を与えません. は、cacheがオンされた後、すべてのcacheにおけるHTTP要求に直接にローカル記憶に応答してもよく、新しいネットワーク接続を開く必要はない. cacheされたレスポンスは、serverによって有効期限が切れていないことが確認され、帯域幅が減少します.cachedされていないレスポンスは、次の請求に便利なので、レスポンスcacheに保存されます.
後記:Cacheメカニズムは多くの実際のプロジェクトで使われています.実際の操作は複雑で、Cacheの実例を共有したいです.
勉強自:http://developer.android.com/training/efficient-downloads/redundant_レdundent.、ありがとうございます.
転載は出典を明記してください.ありがとうございます.
Redundent Downloads are Redundent[繰り返しダウンロードは冗長です]
long currentTime = System.currentTimeMillis());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
long expires = conn.getHeaderFieldDate("Expires", currentTime);
long lastModified = conn.getHeaderFieldDate("Last-Modified", currentTime);
setDataExpirationDate(expires);
if (lastModified < lastUpdateTime) {
// Skip update
} else {
// Parse update
}
Context.getExternalCacheDir();
Context.getCache();
private void enableHttpResponseCache() {
try {
long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
File httpCacheDir = new File(getCacheDir(), "http");
Class.forName("android.net.http.HttpResponseCache")
.getMethod("install", File.class, long.class)
.invoke(null, httpCacheDir, httpCacheSize);
} catch (Exception httpResponseCacheNotAvailable) {
Log.d(TAG, "HTTP response cache is unavailable.");
}
}
後記:Cacheメカニズムは多くの実際のプロジェクトで使われています.実際の操作は複雑で、Cacheの実例を共有したいです.
勉強自:http://developer.android.com/training/efficient-downloads/redundant_レdundent.、ありがとうございます.
転載は出典を明記してください.ありがとうございます.