日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[Android Traffic] 使用缓存来避免重复的下载

發布時間:2025/5/22 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Android Traffic] 使用缓存来避免重复的下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:?http://blog.csdn.net/kesenhoo/article/details/7395817

Redundant?Downloads are Redundant[重復下載是冗余的]

  • 減少下載的最基本方法是僅僅下載那些你需要的[美國人的思維還是比較直接,雖然這句話看起來比較搞笑,但是很有道理]。從數據的角度看,我們可以通過傳遞類似上次更新時間這樣的參數來制定查詢某些數據。
  • 同樣,在下載圖片的時候,server那邊最好能夠減少圖片的大小,而不是讓我們下載完整大小的圖片。

Cache Files Locally [緩存文件到本地]

  • 避免下載重復的數據是很重要的。可以使用緩存機制來處理這個問題。緩存static的資源,例如完整的圖片。這些緩存的資源需要分開存放。
  • 為了保證app不會因為緩存而導致顯示的是舊數據,請從緩存中獲取最新的數據,當數據過期的時候,會提示進行刷新。
  • 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();
    • 不管是存放在哪里的文件都會在app卸載的時候被清除。

    Use the HttpURLConnection Response Cache[使用HttpURLConnection Response緩存]

    • Android 4.0里面為HttpURLConnection增加了一個response cache,我們可以使用反射機制開啟HTTP response cache,看下面的例子:
  • 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."); } }
    • 上面的sample code會在Android 4.0以上的設備上開啟response cache,同時不會影響到之前的程序。
    • 在cache被開啟之后,所有cache中的HTTP請求都可以直接在本地存儲中進行響應,并不需要開啟一個新的網絡連接。
    • 被cache起來的response可以被server所確保沒有過期,這樣就減少了帶寬。沒有被cached的response會因方便下次請求而被存儲在response cache中。
    ? 后記:Cache機制在很多實際項目上都有使用到,實際操作會復雜許多,有機會希望能夠分享一個Cache的實例。 ?

    學習自:http://developer.android.com/training/efficient-downloads/redundant_redundant.html,謝謝!

    轉載請注明出處:http://blog.csdn.net/kesenhoo,謝謝! 分類:?Android Traffic 本文轉自demoblog博客園博客,原文鏈接http://www.cnblogs.com/0616--ataozhijia/p/4324447.html如需轉載請自行聯系原作者
    demoblog

    總結

    以上是生活随笔為你收集整理的[Android Traffic] 使用缓存来避免重复的下载的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。