首页 > 其他分享 >【Android面试八股文】谈谈你对Glide框架的缓存机制设计的理解

【Android面试八股文】谈谈你对Glide框架的缓存机制设计的理解

时间:2024-07-13 23:27:08浏览次数:13  
标签:缓存 自定义 Glide 清理 内存 磁盘 Android

文章目录

一、引入缓存的目的

  1. 减少流量消耗,加快响应速度;
  2. Bitmap 的创建/销毁比较耗内存,可能会导致频繁GC;使用缓存可以更加高效地加载 Bitmap,减少卡顿。

二、Glide缓存流程

2.1 Glide缓存的读取顺序

Glide缓存分为内存缓存磁盘缓存,其中内存缓存是由弱引用+LruCache组成。

  • 取的顺序是:弱引用、LruCache、磁盘
  • 存的顺序是:磁盘、弱引用、LruCache

在这里插入图片描述

注意:关于缓存的存取的入口在 Engine 这个类中

2.2 Glide加载资源流程

在这里插入图片描述

  • Glide使用了ActiveResources(活动缓存弱引用)+MemoryCache(内存缓存Lru算法&#x

标签:缓存,自定义,Glide,清理,内存,磁盘,Android
From: https://blog.csdn.net/qq446282412/article/details/140402351

相关文章

  • Android 四大组件 Activity、Service、Broadcast、Content Provider
    一、Android四大组件Activity、Service、Broadcast、ContentProvider1、Activity:1.1、打开App内部Activity:Intentintent=newIntent(SourceActivity.this,TargetActivity.class);startActivity(intent); 1.2、打开Activity并获取返回结果(类似模式对话框): 主Activit......
  • Android C++系列:Linux常用函数和工具
    1.时间函数1.1文件访问时间#include<sys/types.h>#include<utime.h>intutime(constchar*name,conststructutimebuf*t);返回:若成功则为0,若出错则为-1如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间;如果times是非空指针,则存取时......
  • Android C++系列:Linux进程间关系
    1.终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),在前面文章我们说过,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况......
  • Redis:高性能的开源缓存数据库
    简介:Redis(RemoteDictionaryServer)是一个基于内存的开源缓存数据库,常用于缓存、消息队列、分布式锁等场景。它被设计成快速、可靠且易于使用的数据库系统,具有高性能、高可用、可扩展性等特点。本篇博客将介绍Redis的基本原理、常见应用场景以及优势。Redis的基本原理Redis......
  • Android初学者书籍推荐
    书单1.《Android应用开发项目式教程》,机械工业出版社,2024年出版2.《第一行代码Android》第二版3.《第一行代码Android》第三版4.《疯狂Android讲义》第四版5.《Android移动应用基础教程(AndroidStudio第2版)》从学安卓到用安卓再到教安卓,我翻阅了不下二十本书,培养了多......
  • python获取Android App性能数据(CPU、GPU、内存、电池、耗电量)
    原文链接:https://blog.csdn.net/u012089395/article/details/1266689461、原理python脚本通过os.popen()方法运行adb命令,获取性能数据,将性能数据保存在csv文件并算出均值、最大值、最小值。本脚本可测试一个app包含多个进程的场景,可以获取每个进程的性能数据。2、环境准备:2.1软......
  • 数据恢复篇:适用于 Android 的恢复工具
    正在摆弄Android设备。突然,您意外删除了一张或多张图片。不用担心,您总能找到一款价格实惠的照片恢复应用。这款先进的软件可帮助Android用户从硬盘、安全数字(SD)或存储卡以及数码相机中恢复已删除的图片。Android上文件被删除的主要原因在获得这些文件恢复应用程序......
  • Redis实战篇之商户查询缓存(基于黑马程序员Redis讲解视频总结)
    1.什么是缓存举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样;同样,实际开发中,系统也需要"避震器",防止过高的数据访问猛冲系统,导致其操作线程无法及时处理信息而瘫痪;这在实际开发中对企业......
  • Java-Redis缓存穿透、缓存击穿及缓存雪崩(配解决方案及代码示例)
    前言在现代高并发的互联网应用中,缓存技术已成为提升系统响应速度与减轻后端数据库压力的关键手段。Redis,以其卓越的性能和丰富的数据结构,成为众多开发者构建缓存层的首选。然而,随着业务复杂度的增加,Redis缓存层也可能遭遇“缓存穿透”、“缓存击穿”以及“缓存雪崩”等现......
  • Cellebrite UFED 4PC 7.69 (Windows) - Android 和 iOS 移动设备取证软件
    CellebriteUFED4PC7.69(Windows)-Android和iOS移动设备取证软件TheIndustryStandardforLawfullyAccessingandCollectingDigitalData请访问原文链接:https://sysin.org/blog/cellebrite-ufed/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCellebri......