日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 应用开发】LruCache 简介

發布時間:2025/6/17 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 应用开发】LruCache 简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • LruCache 應用場景
        • LruCache 算法原理
        • LruCache 實現
        • LruCache 參考




LruCache 應用場景



1. 緩存需求 : 處理大量數據時 , 為了提升性能 , 需要對其中的部分數據進行緩存 ; 涉及到使用緩存 , 和刪除內存緩存操作 , 使緩存的數據大小保持在一個穩定的水平 ;

2. 數據寫入緩存 : 當需要使用某個數據時 , 將該數據寫入緩存 , 此時先對內存使用情況進行一次判定 ; 如果內存不足 , 需要移除緩存數據中的部分內容 , 然后再將數據寫入緩存 ; 當然 , 如果緩存內存足夠 , 直接寫入緩存即可 ;

3. LruCache 引入 : 那么如何確定刪除緩存中的哪些數據呢 , 這里就需要用到 LruCache 了 ;




LruCache 算法原理



LRU ( Least Recently Used 最近最少使用 ) 算法 : 內部維護了一個固定大小的隊列 ( 先進先出 ) ; 放入元素時根據不同的情況執行不同的策略 ;

  • 1. 緩存中是否有該元素 : 如果緩存中有該元素 , 那么將該元素放到隊列的隊頭 ;
  • 2. 緩存中沒有該元素 : 如果緩存中沒有改元素 , 那么需要插入該元素 ;
  • 3. 緩存空間是否已滿 : 如果緩存空間滿了 , 需要將隊尾元素刪除 , 將元素放在隊首 ;
  • 4. 緩存空間沒有滿 : 如果緩存空間沒有滿 , 直接將元素放在隊首 ;

緩存隊列中 , 隊尾的元素就是最近最少使用的元素 , 因為其一旦使用就會提升到隊首 , 因此當緩存滿了以后 , 就刪除隊尾的元素 ;




LruCache 實現



1. Android 中的 LruCache : 其緩存空間就是一個 LinkHashMap 鏈表 , 當調用 put 方法向其中放入新元素時 , 就會判斷這個 LinkHashMap 鏈表是已滿 , 如果沒有空間 , 就將最后一個最近最少使用的元素刪除 ;

2. LinkHashMap 實現 : LinkHashMap 鏈表內部由數組和雙向鏈表實現 , 其能夠保證與隊列一致的性質 , 即先進先出 , 并保證其插入取出順序的一致性 ; 當調用 get 方法獲取其中的元素時 , 會將該元素提取到隊頭中 , 這符合了 LRU 算法的要求 ;




LruCache 參考



LruCache 參考 :

  • ① Android LruCache 文檔
  • ② 談談LruCache算法的底層實現原理及其內部源碼
  • ③ 完全解析Andorid的緩存機制LruCache
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Android 应用开发】LruCache 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。