亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Android LruCache原理相关的知识,希望能为你提供帮助。
LruCache原理:
【Android LruCache原理】维护一个缓存对象列表,按照访问顺序进行对象排列,就是将一直没有访问的对象放到队尾,即将淘汰。而最近访问的对象放在队头,最后淘汰。而这个队列主要是通过LinkedHashMap实现。
文章图片
LinkedHashMap:(默认为插入排序,即输入与输出顺序一致)
继承于HashMap,使用双向链表来存储Map中的Entry顺序关系。顺序有2,一是访问顺序,一是插入顺序,可以由其构造方法LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder:true表示顺序访问,false是插入排序)指定。所以,get,put,remove等操作,它除了做HashMap的操作,还需要调整Entry顺序列表的工作。
android中的LruCache将LinkedHashMap中的默认顺序设置为访问顺序,每次调用get,则将该对象移到链表的头部,调用put插入新的对象到链表头部。当内存缓存达到最大值时,就将链表尾部的对象移除。每次put或者remove,都需要判断缓存大小是否足够trimToSize。
注:链表头部-最近使用或者插入的;链表尾部-最近很少使用的。
本文图片来自于网络,若有侵权请联系本人,必删!
推荐阅读
- Android适配器的使用(ArrayAdapterSimpleAdapterBaseAdapter)
- 手机APP制作很复杂吗?NO!
- 安卓用户使用微信H5牛牛平台性能优化方面的探索方案
- 针对不同手机终端扫码安装对应环境APP
- Androidstudio调试真机提示-Device supports x86,but APK only supports armeabi-v7a,armeabi,x86_64
- 移动互联网App兼容性测试
- [LeetCode]202. Happy Number
- Android选择器Select
- h5 扫描二维码打开app和点击下载功能的实现