2014-11-14 63 views
1

我想使用內存緩存(LruCache)而不是DiskLruCache來緩存圖像。我對android中的圖像緩存有些懷疑。如何檢查android的LruCache中可用的內存?

如何檢查Lrucache中的可用內存大小?

當緩存請求超過Lrucache中的可用內存時會發生什麼?

LruCache對象是否保留在dalvik堆內存中?或緩存完成保存在堆內存中?

+0

你想緩存位圖(ImageView)嗎? –

+0

嗨,是的,我想緩存位圖。 –

+0

就像我之前說的,我不瞭解LruCache。但是,您可以使用自動使用緩存的Picasso或通用圖像加載程序庫 –

回答

1

答到的第一個問題:

private LruCache<String, Bitmap> mMemoryCache; 
    //... 
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    int availMemInBytes = am.getMemoryClass() * 1024 * 1024; 

回答第二個:

最近最少使用的對象(S)將從列表中刪除。一個或多個對象將被刪除,直到有足夠的空間放置新對象。

關於第三個問題,我覺得我遲到了,因爲Dalvik不再適用於Android> 4.4.2。也許這個視頻可以幫助找出新的藝術品會發生什麼 https://www.youtube.com/watch?list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&t=47&v=R5ON3iwx78M

我希望這會有所幫助。