日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

轉(zhuǎn)載自:?http://blog.csdn.net/kesenhoo/article/details/7395817

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

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

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

  • 避免下載重復的數(shù)據(jù)是很重要的。可以使用緩存機制來處理這個問題。緩存static的資源,例如完整的圖片。這些緩存的資源需要分開存放。
  • 為了保證app不會因為緩存而導致顯示的是舊數(shù)據(jù),請從緩存中獲取最新的數(shù)據(jù),當數(shù)據(jù)過期的時候,會提示進行刷新。
  • 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 }
    • 使用這種方法,可以有效保證緩存里面一直是最新的數(shù)據(jù)。
    • 可以使用下面的方法來獲取外部緩存的目錄:
    Context.getExternalCacheDir();
    • 下面是獲取內(nèi)部緩存的方法,請注意,存放在內(nèi)存中的數(shù)據(jù)有可能因內(nèi)部空間不夠而被清除。
    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以上的設(shè)備上開啟response cache,同時不會影響到之前的程序。
    • 在cache被開啟之后,所有cache中的HTTP請求都可以直接在本地存儲中進行響應,并不需要開啟一個新的網(wǎng)絡(luò)連接。
    • 被cache起來的response可以被server所確保沒有過期,這樣就減少了帶寬。沒有被cached的response會因方便下次請求而被存儲在response cache中。
    ? 后記:Cache機制在很多實際項目上都有使用到,實際操作會復雜許多,有機會希望能夠分享一個Cache的實例。 ?

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

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

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。