Android 开发学习笔记(一) LRU 算法的使用

来源:互联网 发布:apache ant jar包 编辑:程序博客网 时间:2024/06/01 09:01
Android 开发学习笔记(一) LRU算法的使用

  • 关于LRU的定义:
 LRU是Least Recently Used 近期最少使用算法。是一种置换算法,
百度百科是这么介绍的:内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
  • 在Android中的应用:Android提供了LruCache 类来 实现Android缓存的lru算法;
  • 在Android中显示单个图片,加载单个网络图片是比较简单的,而多个图片同时加载时,就会变的比较复杂,比如ListView,GridView等控件,一般处理的方式有多线程加载(使用Thead + handle)的方式,还有异步加载(AsyncTask)。要提高体验度可以使用Lru算法,做缓存的处理。
  • 使用方法;
  • 翻看源码可以看出 LruCache类是使用的 LinkedHashMap<K, V> map;来实现缓存的,所以存取的用法基本与map类似;
private LruCache<String ,Bitmap> caches;//初始化 LruCache   public void init LruCache(){        //获取运行时的内存,        int maxMemory = (int) Runtime.getRuntime().maxMemory();        //取 内存的1/4 作为缓存的大小;        int cacheSize = maxMemory / 4;caches = new LruCache<String, Bitmap>(cacheSize){ @Override protected int sizeOf(String key, Bitmap value) { return value.getByteCount(); }};    }//存public void addBitmap(String url,Bitmap bitmap){if(caches.get(url) == null){caches.put(url,bitmap);}}//取public Bitmap getBitmap(String url){return caches.get(url);}
0 0
原创粉丝点击