Android
LruCache
खोज…
टिप्पणियों
आपको उन अनुप्रयोगों में Lru Cache का उपयोग करना चाहिए जहां दोहरावदार संसाधन लोड एक सहज ऐप व्यवहार को प्रभावित करेगा। उदाहरण के लिए बड़े थंबनेल (128x128) के साथ एक फोटो गैलरी।
हमेशा लार कैश के आकार के साथ सावधान रहें क्योंकि इसे बहुत अधिक सेट करने से ऐप प्रभावित हो सकता है।
लार कैश के बाद अब यह उपयोगी नहीं है कि इसे किसी भी संदर्भ में रखने से बचें ताकि गारबेज कलेक्टर इसे मेमोरी से साफ कर सके।
सबसे अच्छे प्रदर्शन के लिए संसाधनों को लोड करना याद रखें, जैसे कि Lru कैश में जोड़ने से पहले एक उचित inSampleSize का चयन करते हुए सर्वोत्तम प्रथाओं का उपयोग करते हुए बिटमैप्स।
कैश की शुरुआत
लार कैश तेज पहुंच के लिए सभी जोड़े गए संसाधनों (मूल्यों) को तब तक स्टोर करेगा जब तक कि यह एक मेमोरी सीमा तक नहीं पहुंच जाता है, इस स्थिति में यह नए इस्तेमाल करने के लिए कम उपयोग किए गए संसाधन (मूल्य) को छोड़ देगा।
Lru कैश को इनिशियलाइज़ करने के लिए आपको एक अधिकतम मेमोरी वैल्यू देने की आवश्यकता होती है। यह मान आपकी एप्लिकेशन आवश्यकताओं पर निर्भर करता है और संसाधन का एक चिकनी ऐप उपयोग को बनाए रखने के लिए कितना महत्वपूर्ण है। छवि गैलरी के लिए एक अनुशंसित मूल्य, उदाहरण के लिए, आपकी अधिकतम उपलब्ध स्मृति का 1/8 होगा।
यह भी ध्यान दें कि लार कैश एक कुंजी-मूल्य के आधार पर काम करता है। निम्नलिखित उदाहरण में, कुंजी एक String
और मूल्य एक Bitmap
:
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
int cacheSize = maxMemory / 8;
LruCache<String, Bitmap> = memoryCache = new LruCache<String, Bitmap>(cacheSize) {
protected int sizeOf(String key, Bitmap bitmap) {
return bitmap.getByteCount();
}
};
कैश में एक बिटमैप (संसाधन) जोड़ना
कैश में एक संसाधन जोड़ने के लिए आपको एक कुंजी और संसाधन प्रदान करना होगा। पहले यह सुनिश्चित कर लें कि मूल्य पहले से कैश में नहीं है
public void addResourceToMemoryCache(String key, Bitmap resource) {
if (memoryCache.get(key) == null)
memoryCache.put(key, resource);
}
कैश से एक बिटमैप (रिज़ॉल्यूशन) प्राप्त करना
कैश से संसाधन प्राप्त करने के लिए बस अपने संसाधन की कुंजी पास करें (इस उदाहरण में स्ट्रिंग)
public Bitmap getResourceFromMemoryCache(String key) {
memoryCache.get(key);
}