欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【Android Developers Training】 85. 不要有冗

系統 1958 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術一般,由于喜愛安卓而產生了翻譯的念頭,純屬個人興趣愛好。

原文鏈接: http://developer.android.com/training/efficient-downloads/redundant_redundant.html


最基本的減少你的下載數量的方法就是只下載你需要的數據。就數據而言,這就意味著實現REST APIs(譯者注:REST即Representational State Transfer,意為表述性轉移狀態,在Web服務中,經常能看到基于RESTful的設計風格),它可以允許你使用一些參數如:上一次更新的時間,來指定限制返回數據的查詢條件。

類似的,當下載圖片時,減少服務端的圖片尺寸,而不是在客戶端把完整圖片全下載下來再調整尺寸,也是一個好的習慣。


一). 在本地緩存文件

另一個重要的技術是避免下載重復數據。你可以使用緩存來實現。總是緩存靜態資源,如包括一些點播類的下載如完整尺寸的圖片(如果條件允許的話)。這類資源應該獨立地存儲起來,來保證你能定期的清空你的資源緩存從而能夠控制它的大小。

要保證你的緩存不會導致你的應用顯示的是陳舊的無用信息,應該從HTTP響應頭中,提取出這個請求內容上一次更新的時間,以及它什么時候會過期。這可以讓你確定什么時候相關的內容要被刷新。

      
        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();
    

當應用被卸載時,不管文件存儲于哪一種類型的緩存,都會被清除。


二). 使用HttpURLConnection響應緩存

Android 4.0在“ HttpURLConnection ”中添加了一個響應緩存。你可以在支持的設備上使用JAVA反射(如下所示)來啟用HTTP響應緩存: ?

      
        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."
      
        );

  }

}
      
    

這一樣例代碼會在Android 4.0+的設備上啟用響應緩存,而不會影響到早期版本的系統。

在使用了該緩存后,被完整緩存的的HTTP請求可以直接被本地存儲所響應,從而不需要再打開一個新的網絡連接。另外緩存可以定期通過向服務器詢問自己的實時性,這樣就可以避免了一部分由于下載數據導致的帶寬損耗。

沒有被緩存的響應會被存儲于響應緩存中以備將來可以用來響應相關的請求。

【Android Developers Training】 85. 不要有冗余的下載


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 二区在线视频 | 亚洲日本免费 | 免费a级毛片| 日韩 欧美 综合 | 亚洲欧美在线看 | 欧美日本一道高清二区三区 | 亚洲一一在线 | 成人国产精品一区二区毛片在线 | 久久久久久久久久爱 | 美女网站黄在线观看 | 一个色综合亚洲伊人久久 | 亚洲精品福利一区二区三区 | 久草福利在线视频 | 97日日摸天天碰免费视频 | 奇米四色在线观看 | 欧美亚洲视频在线观看 | 日韩精品视频免费观看 | 久草草视频在线观看免费高清 | 国产精品久久久久久久久久久久冷 | 一级美女 | 久久精品一区二区三区四区 | 欧美日韩亚洲一区二区 | 成年人免费网 | 91精品国产日韩91久久久久久 | 欧美成人xxxx | 国产精品99久久久久 | 大香一本蕉伊线亚洲网 | 99热免费精品| cao视频| 亚洲9777精品毛A片久久久 | 一级特黄特黄毛片欧美的 | 久久久久国产精品免费免费搜索 | 三及毛片 | 国产精品久久久久久久久久 | 日本久久综合网 | 欧美日韩视频在线第一区 | 日韩精品一区二区三区 | 国产成人在线视频播放 | 欧洲免费无线码二区5 | 五月婷婷六月丁香 | 黑丝在线播放 |