Android面试题——掘金-三方框架之glide(5.5)
一 概述
1 | Android 三方框架相关面试题:Glide |
二 面试题解答(仅供参考)
2.1 Glide 是什么?优点是什么?
1 | 1.概念 |
2.2 Glide 的基本使用方式?
1 | Glide.with(context) |
2.3 Glide 的生命周期管理是怎么实现的?
1 | Glide 通过监听 Activity/Fragment 的生命周期,自动暂停/恢复图片请求。 |
2.4 Glide 的缓存机制是怎样的?
Glide 有三级缓存机制:
缓存层级 | 类型 | 说明 |
---|---|---|
活动缓存(Active Cache) | 强引用缓存(RAM) | 当前正在使用的图片,优先级最高 |
内存缓存(Memory Cache) | LruCache | BitmapPool 回收复用,提高加载速度 |
磁盘缓存(Disk Cache) | LruDiskCache | 原图/转换图缓存,持久存储到文件系统 |
2.5 如何清除 Glide 缓存?
1 | // 清除内存缓存(主线程) |
2.6 Glide 中如何设置磁盘缓存策略?
1 | .diskCacheStrategy(DiskCacheStrategy.ALL) |
2.7 Glide 中如何避免图片加载闪烁?
1 | -使用 .dontAnimate() 或 .dontTransform() 禁止默认动画; |
2.8 Glide 与 Picasso/Coil/Fresco 的对比?
特性 | Glide | Picasso | Fresco | Coil(Kotlin) |
---|---|---|---|---|
图片格式支持 | ✅ 支持 GIF、视频帧 | ❌ 不支持 GIF | ✅ 强支持 | ✅ 靠 Okio 处理 |
生命周期绑定 | ✅ | ❌ | ✅ | ✅ |
缓存机制 | ✅ 三级缓存 | ✅ 双缓存 | ✅ 内存/磁盘缓存 | ✅ |
体积 | 中 | 小 | 大 | 小 |
性能 | 高 | 中 | 高(多进程) | 中 |
Kotlin 支持 | 一般 | 一般 | 弱 | ✅ 原生 Kotlin |
2.9 如何监听 Glide 加载状态?
1 | Glide.with(context) |
2.10 Glide 如何加载圆形图片或自定义变换?
1 | 方法 1:使用 RequestOptions |
2.11 Glide 是如何加载图片的?大致原理?
1 | -Glide.with() 绑定生命周期; |
2.12 Glide 如何避免内存泄漏?
1 | -使用 Glide.with(fragment)、with(activity) 绑定生命周期; |
2.13 如何配置 Glide Module 做全局配置?
1 | @GlideModule |
2.14 Glide 在 RecyclerView 中加载图片有哪些优化技巧?
1 | 1.技巧 |
2.15 如何加载视频缩略图?
1 | Glide.with(context) |
2.16 总结
能力 | 是否支持 |
---|---|
生命周期感知 | ✅ |
磁盘/内存缓存 | ✅ |
加载动画/变换 | ✅ |
视频帧/GIF | ✅ |
自定义缓存目录 | ✅ |
自定义加载引擎 | ✅(可拓展) |
Kotlin 支持 | ✅ |
三 参考
- 掘金—知识库的大纲