防止多圖OOM的核心解決思路就是使用LruCache技術。但LruCache只是管理了內存中圖片的存儲與釋放,如果圖片從內存中被移除的話,那么又需要從網絡上重新加載一次圖片,這顯然非常耗時。對此,Google又提供了一套硬盤緩存的解決方案:DiskLruCache(非Google官方編寫,但獲得官方認證)。只可惜,Android Doc中並沒有對DiskLruCache的用法給出詳細的說明,而網上關於DiskLruCache的資料也少之又少,因此今天我准備專門寫一篇博客來詳細講解DiskLruCache的用法,以及分析它的工作原理,這應該也是目前網上關於DiskLruCache最詳細的資料了。
那么我們先來看一下有哪些應用程序已經使用了DiskLruCache技術。在我所接觸的應用范圍里,Dropbox、Twitter、網易新聞等都是使用DiskLruCache來進行硬盤緩存的,其中Dropbox和Twitter大多數人應該都沒用過,那么我們就從大家最熟悉的網易新聞開始着手分析,來對DiskLruCache有一個最初的認識吧。