在android中,許多圖像加載庫(例如Picasso--使用2%的磁盤緩存存儲空間,Glide)除了在內存lru緩存中使用磁盤緩存。我可以理解爲什麼這可能對從網絡下載的圖像有用 - 如果內存緩存已滿,請從磁盤讀取而不是遠程讀取它們 - 從而避免網絡延遲等。但是,如果我們只是讀取本地映像在Android設備本身 - 我們通過使用單獨的磁盤緩存與序列化的位圖數據獲得任何東西 - 因爲數據必須從磁盤讀取?如果您的應用需要縮略圖並對原始圖像進行二次採樣並將其存儲在緩存中,可能有意義嗎?有沒有研究顯示性能增益。我看到在googles samples和其他bitmap cache庫中使用了磁盤緩存。DiskLRUCache適用於Android中的位圖(以及其他)
1
A
回答
0
所以這裏有一些裁判我在AOSP docs發現:
內存緩存中加快訪問最近查看 位圖是有用的,但你不能依賴於圖像在此 緩存可用。具有較大數據集的像GridView這樣的組件可以輕鬆填充內存緩存中的 。您的應用程序可能會被另一個 任務打斷,並且在後臺可能會中止 ,並且內存緩存被破壞。一旦用戶恢復,您的應用程序必須再次處理每個圖像。
磁盤高速緩存可以在這些情況下被用來處理持久位圖 並有助於減少加載時間如果照片不再在內存高速緩存可 。當然,從磁盤讀取圖像比從內存中加載 要慢,並且應該在後臺線程中完成,因爲讀取次數可能無法預測。
相關問題
- 1. 適用於Android的EPSON SDK適用於其他打印機
- 2. 調整位圖大小以適應其他位圖
- 3. Android應用程序的地圖不適用於其他設備
- 4. Android startActivity()適用於一個類,但不適用於其他
- 5. 打印位圖到其他位圖android
- 6. 的Android DiskLruCache實施
- 7. 代碼適用於圖像,但不適用於codeigniter中的其他文件
- 8. 如何引用Xcode中的圖像和其他對象以及物理位置?
- 9. 適用於Android的純粹C++應用程序及其性能
- 10. Android使用kSoap以及.NET以外的其他web服務
- 11. 關於其他圖片的圖片Android
- 12. Google Rich Snippets適用於一位作者,但不適用於其他
- 13. Android:綁定日期到列表視圖以及其他數據
- 14. Cloudflare(以及其他基於DNS的CDN) - 使用Auth緩存
- 15. Android GCM服務適用於一款平板電腦,但不適用於其他
- 16. 如果陳述適用於其中一個,但不適用於其他
- 17. jQuery和其他庫,以及使用'$'
- 18. 圖片上傳表單適用於某些人,但不適用於其他人?
- 19. 背景圖像不適用於包裝,但適用於其他HTML元素
- 20. PIL image.open()適用於某些圖像,但不適用於其他人
- 21. 懸停圖片位於其他內容
- 22. 適用於Android的ORMLite和其他ORM選項
- 23. 適用於4.0及更高版本的Android選項卡圖標
- 24. 如何使用gmaps4rails顯示選定的位置以及所有其他位置?
- 25. contenteditable保證金適用於其他絕對定位元素
- 26. CSS定位適用於Chrome而不是其他瀏覽器?
- 27. Log4j適用於一個類,不適用於其他類
- 28. Java AudioInputStream適用於一個項目,但不適用於其他
- 29. 漸變不適用於IE,但適用於其他地方
- 30. Ionic2/Typescript:normalize()不適用於iOS9及以下
偉大的主題。我從設備加載縮略圖時出現OutOfMemory問題,處理圖像時我總是使用Glide或Picasso,但我注意到Piccasso在處理大圖像時,我仍然有時會遇到內存不足的問題。如果有更多關於思考的知識可以回答,那會很好。 –