zoukankan      html  css  js  c++  java
  • LruCache缓存

    LruCache通常用于实现内存缓存,采用的缓存算法是LRU(Least Recently Used)即近期最少使用算法,其核心思想是:当缓存满的时候,会优先淘汰那些近期最少使用的缓存对象。

    1.LruCache是Android 3.1提供的缓存类,在使用LruCache的时候建议采用support-v4兼容包中提供的LruCache,这样才能兼容Android 2.2版本。

    2.LruCache是一个泛型类,内部采用一个LinkedHashMap以强引用的方式存储外界的缓存对象,当缓存满的时候,会移除较早使用的缓存对象,然后再添加新的缓存对象。

              强引用直接的对象引用

              软引用当一个对象只有软引用存在时,系统内存不足时此对象会被gc回收

              弱引用:当一个对象只有弱引用存在时,此对象会随时被gc回收。

    简单的使用:

        1.初始化

    int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024);
    int cacheMemory = maxMemory/8;
    mLruCache = new LruCache<String,Bitmap>(cacheMemory){
                @Override
                protected int sizeOf(String key, Bitmap value) {//sizeOf的作用是计算缓存对象的大小
                    return value.getRowBytes() * value.getHeight()/1024;
                }
            };

    //sizeOf的作用是计算缓存对象的大小,单位要和总容量的单位一致,这里为KB(除了1024)

    2.获取

    mLruCache.get(key);

    3.添加

    mLruCache.put(key,bitmap);
  • 相关阅读:
    pandas Dataframe filter
    process xlsx with pandas
    data manipulate in excel with easyExcel class
    modify registry in user environment
    add number line in vim
    java import webservice
    ctypes MessageBoxA
    music 163 lyrics
    【python实例】自动贩卖机
    【python基础】sys模块(库)方法汇总
  • 原文地址:https://www.cnblogs.com/tangZH/p/5886982.html
Copyright © 2011-2022 走看看