Android Volley(Google IO 2013)可以爲緩存的第一級和第2級的磁盤緩存分配一個位圖緩存。我不清楚這是一種選擇還是一種選擇。還想知道圖像的磁盤緩存與位圖緩存的性能。我注意到,ImageLoader似乎要麼採用磁盤緩存或位圖緩存,但我也讀過關於它具有level1和level2緩存的地方...Can Volley(Google IO 2013)具有level1 LruBitmapImageCache和level2 DiskCache?
4
A
回答
1
開箱即用Volley只有磁盤緩存(DiskBasedCache類),但你可以提供你的(實現com.android.volley.Cache接口)。 Volley中沒有像「位圖緩存」這樣的術語。所有數據(位圖,文本等)默認緩存在磁盤上。
2
排球,默認情況下,緩存在磁盤上(L2)一切基於HTTP頭。如果沒有緩存或TTL頭可用,則不會發生磁盤緩存。
你問關於緩存其中有一個答案是會幫助你理解here的問題。
關於位圖緩存。實際上,ImageLoader
類需要實現接口ImageCache
,它應該是一個內存緩存(L1)。見this question。
0
我知道這是一個老問題,但我有同樣的問題,我花了幾天時間閱讀博客,觀看視頻和滾動起來,在排球源代碼下來,終於弄明白。因此,對於未來這裏引用是最清楚的方式,需要說明:
- 凌空緩存每個響應,除非明確地迴應說:「無緩存」或「無店」在其頭部。如果是這樣,它將不會被緩存,否則它將根據響應頭的「最大年齡」被緩存。上述
- 緩存系統有意義100%,因爲響應不會是有效的,如果服務器說,以便使你能夠設置有效期限從服務器側的每個響應(這是真棒)的。
- ,如果你不喜歡,你可以重寫的凌空源代碼代碼的相應部分上面的緩存方法,但它是非常不推薦
- 上述所有使用LRU算法,這使得它L2上的磁盤緩存。所以凌空已經內置L2高速緩存爲每個請求(包括圖像)
- 磁盤高速緩存被阻塞I/O。因此可以說用戶非常快地滑動ListView,並且圖像加載速度非常快,但I/O會阻塞您的主線程,並且您在滾動時看到一些惱人的跳躍。然後,非阻塞(內存中)L1緩存便於使用,並且您可以看到它在處理圖像時非常有用。 OK,那麼在Volley中沒有內置的L1緩存,但是如果你想使用ImageLoader,你可以編寫自己的代碼並將其綁定到ImageLoader。 (不要打擾,成千上萬已經可以下LruBitmapCache名,僅複製)
- 結論:設置你的服務器發送適當的緩存數據的反應(這是很容易的),並定義一個LruBitmapCache在凌空您ImageLoader的和一切都完成了。您將擁有L1和L2緩存。如果L1失敗排查L2(磁盤)並且如果再次失敗則進入RPC。
希望它可以幫助
相關問題
- 1. 如何在android Volley中優化網絡隊列嗎? (Volley Google IO 2013)
- 2. 使用fnmatch()在level1.level2.level3中測試權限
- 3. Google IO 2013 App Mystery Values
- 4. 使用Google ChartRangeFilter和Keen IO
- 5. Google的Volley lib帶有Authenticated Appengine端點?
- 6. 在Apache HttpClient 4.2中使用Google Volley
- 7. Magento:顯示所有level2類別
- 8. 具有標題和正文的Android Volley POST請求
- 9. 內存緩存和DiskCache圖像策略
- 10. Volley和AsyncTask
- 11. InfoPath Designer 2013工具欄沒有反應
- 12. IO分析工具?
- 13. MVC3中的DiskCache插件imageresizer
- 14. Gson和Volley的Proguard問題
- 15. Google IO 2013 Geofencing:我可以使用BroadcastReceiver而不是IntentService觸發轉換嗎?
- 16. 使用Google Volley發送請求參數
- 17. Optimizing Volley
- 18. Excel 2013 - 具有多個條件的VLOOKUP
- 19. Perl的IO和Java IO
- 20. Android Volley https SSL自簽名和Google Maps API
- 21. 帶有重複參數名稱的Google Volley請求
- 22. 的Visual Studio 2013和氪工具包(C#)
- 23. TrueBasic錯誤:庫LEVEL1.TRU:沒有這樣的文件
- 24. Linux Mono和CAN-BUS
- 25. Can Sharepoint 2013可用作BPM的開箱即用解決方案
- 26. Google Apps Sync for Microsoft Outlook 2013
- 27. Volley發送If-Modified-Since當文檔不具有Last-Modified
- 28. VOLLEY 500和400錯誤
- 29. Google協作平臺和Google Chart工具
- 30. 本地存儲的Google IO會議地圖等版本?
實際上它不是一個真正的同樣的問題。有一級和二級緩存。另外,當你仍然使用磁盤緩存來處理其他類型的數據時,你可以切換出ImageLoader的位圖緩存嗎? – TestBest
我想問題是不一樣的,但答案是足夠全面的回答這個問題。綜上所述,答案是肯定的:內部的L2磁盤緩存和由Volley管理。 **通過您正在使用的'RequestQueue'的每個http響應都將根據其http緩存標頭默認緩存。另一方面,'ImageLoader'期望*你*實現一個內存緩存,並在其構造函數中提供它。 –