zoukankan      html  css  js  c++  java
  • xUtils 中的 BitmapUtils

     韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha

    xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。

     BitmapUtils内存缓存的核心类LruMemoryCache,LruMemoryCache代码和v4包的LruCache一样,只是加了一个存储超期的处理,这里分析LruCache源码。LRU即Least Recently Used,近期最少使用算法。也就是当内存缓存达到设定的最大值时将内存缓存中近期最少使用的对象移除,有效的避免了OOM的出现。
     
            讲到LruCache不得不提一下LinkedHashMap,因为LruCache中Lru算法的实现就是通过LinkedHashMap来实现的。LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHashMap(int initialCapacity,float loadFactor, boolean accessOrder)指定。所以,对于get、put、remove等操作,LinkedHashMap除了要做HashMap做的事情,还做些调整Entry顺序链表的工作。LruCache中将LinkedHashMap的顺序设置为LRU顺序来实现LRU缓存,每次调用get(也就是从内存缓存中取图片),则将该对象移到链表的尾端。调用put插入新的对象也是存储在链表尾端,这样当内存缓存达到设定的最大值时,将链表头部的对象(近期最少用到的)移除。
  • 相关阅读:
    使<div>做的层不随滚动条的移动而移动
    datagrid 实现 表头水平可以移动 垂直固定
    csapp 、sicp 、深入理解计算机系统、 计算机程序的构造和解释
    window.open使用
    C#进程管理
    asx根据时间点播放
    Ext GrdPanel多种取值方式
    System.ComponentModel.Win32Exception: 拒绝访问
    播放器Object使用
    M3U文件格式
  • 原文地址:https://www.cnblogs.com/yue31313/p/7401144.html
Copyright © 2011-2022 走看看