android glide面试题,Android面试:80%的面试官关于Glide都会问这几个问题!【建议收藏】...
Glide的三级缓存有了解过么?
先来了解一下我们常说的图片三级缓存
一般是强引用,软引用和文件系统,Android系统中提供了LruCache,通过维护一个LinkedHashMap来保存我们需要的各种类型数据,例如我们这里需要的Bitmap。LruCache一般我们会设置为系统最大存储空间的八分之一,而它的机制就是我们常说的最近最少使用原则,如果Lru中的图片大小超过了默认大小,则会把最久使用的图片移除。
当图片被Lru移除时,我们需要手动将图片添加到软引用(SoftRefrence)中。需要维护一个软应用的集合在我们的项目中。
简单概括一下常用的三级缓存的流程:
先去Lru中找,有则直接取。
没有,则去SoftRefrence中找,有则取,同时将图片放回Lru中。
没有的话去文件系统找,有则取,同时将图片添加到Lru中。
没有就走下载图片逻辑,保存到文件系统中,并放到Lru中。
下面介绍一下Glide的缓存结构:
Glide缓存严格意义上说只有内存缓存和磁盘缓存,内存缓存中又分为Lru和弱引用缓存。
所以Glide的三级缓存可以分为:Lru缓存,弱引用缓存,磁盘缓存。
下面我们看一下Glide的读取顺序,这里有一点不同,我用的是Glide4.8版本,跟之前版本的写入顺序稍有不同。
截取部分源码:
android glide面试题,Android面试:80%的面试官关于Glide都会问这几个问题!【建议收藏】...相关推荐
- 2021年最新Android大厂面试题来袭!吊打面试官系列!
面试经验 自己大大小小投了也有20多家公司,不过经历简历筛选以及笔试淘汰,最终就经历了7家公司的面试.下面我就把自己面试中问到的问题贴出来供大家参考,一些具体项目相关的就不贴了. 阿里巴巴 阿里是3月 ...
- android应用教程试题,ANDROID应用开发试题
Android应用开发试题 一.选择题(每题2分,共30分) 1.下列不是手机操作系统的是?()D A.Android B.Window Mobile C.Apple IPhone IOS D.win ...
- android广播面试题,Android相关面试题
面试过程中遇到的题集,都会摘要记录下来 一,Java部分 1.什么是反射? 2.反射的实现原理是什么? 3.Java线程sleep join yield wait notify notifyAll 4 ...
- android java 面试题,Android java 高级面试题库
(一) java基础面试知识点 1,java中==和equals和hashCode的区别? 1."==" ==是运算符,用来比较两个值.两个对象的内存地址是否相等. 2." ...
- “约见”面试官系列之常见面试题之第九十一篇之简述Vue的生命周期适用于哪些场景(建议收藏)
答:beforeCreate:在new一个vue实例后,只有一些默认的生命周期钩子和默认事件,其他的东西都还没创建.在beforeCreate生命周期执行的时候,data和methods中的数据都还没 ...
- “约见”面试官系列之常见面试题之第六十九篇之document.ready和onload的区别(建议收藏)
document.ready和onload的区别为:加载程度bai不同du.执行次数不同.执行速度zhi不同. 一.加载程度不同 1.document.ready:在DOM加载完成dao后就可以可以对 ...
- “约见”面试官系列之常见面试题之第六十六篇之事件委托的原理和实现(建议收藏)
事件委托(事件代理)原理:简单的说就是将事件交由别人来执行,就是将子元素的事件通过冒泡的形式交由父元素来执行. 为什么要用时间委托? 在JavaScript中,添加到页面上的事件处理程序数量将直接关系 ...
- “约见”面试官系列之常见面试题第四十三篇之页面输入url之后发生了什么?(建议收藏)
本文主旨:帮助自己理清页面输入url地址之后的一个整体流程 首先,用户第一次向服务器发送对应url地址请求,此时,客户端没有缓存 1.用户输入url通过DNS解析为对应的IP地址. 2.应用层:HTT ...
- “约见”面试官系列之常见面试题之第一百零三篇之vue-router实现路由懒加载(建议收藏)
vue异步组件 es提案的import() webpack的require,ensure() vue异步组件技术 ==== 异步加载 vue-router配置路由 , 使用vue的异步组件技术 , 可 ...
最新文章
- MySQL 实现一个字段赋值给另一个字段
- 在计算机安全系统中,探究免疫思想在计算机安全系统中的应用
- Prim和Dijkstra居然写起来一模一样
- MySQL - 视图
- 2018顺丰视觉岗笔试几个知识点
- CentOS7 安装Redis 单机版
- oracle中between and闭合性
- c#类的定义,c#中的关健字,C#标识符
- [hdu5628]Clarke and math(dirichlet卷积)
- 【bootcamp问答系统部署】
- 【图像加密】基于Arnold置乱图像加密解密Matlab代码
- 初识微信小程序 字体样式设置
- Laravel文档梳理7、视图
- pve 不订阅更新_魔兽世界PVE史:第二章 (四)国服那些年
- 《有限元分析基础教程》(曾攀)笔记一-二维杆单元有限元程序(基于Python)...
- 推荐一个视频播放器potplayer
- springCloud alibaba: Sentinel--服务容错
- 终于弄懂 CRC 循环冗余校验 辽
- Monkey的11种事件
- Java基础学习(二十一)之接口
热门文章
- 【PaddleOCR】一、PaddleOCR安装、测试(Win10)
- Linux系统中,python需要import上一级目录文件的解决办法
- IPC编程C语言,4. UNIX Domain Socket IPC
- 任正非详解华为不上市与家人不接班问题
- ora-01128,ora-00275
- Selenium一些特殊情况的处理:失去焦点、点击不生效、长页面处理、先触发事件才能动态加载的元素、日期输入
- Rabbitmq消息中心_消息追踪
- 数据库主键到底是用自增长(INT)好还是UUID好?
- python删除指定字符串之间所有行_python:删除包含字符串的pandas数据帧中的所有行...
- 基于Flexlive.CQP.Framework的C# 酷Q UDP实现