麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

# 讀 Android 開發藝術探索 &13

2019-11-09 17:53:16
字體:
來源:轉載
供稿:網友

關鍵詞:Bitmap / Cache / 圖片加載 / 采樣率 / ImageLoader /

本次筆記梳理的內容是 Bitmap 的加載和 Cache。加載 Bitmap 需要注意的問題有防止內存溢出、如何高效地加載 Bitmap 等等,對于常用的緩存策略,實際開發中,我們需要用 Bitmap 做緩存,通過緩存我們不需要每次都從網絡上請求圖片或者從存儲設備中加載圖片,極大提高圖片的加載效率以及用戶體驗。 目前常用的緩存策略有:LruCache 和 DiskLruCache,分別對應著 內存緩存 和 存儲緩存,最近最少使用算法:當緩存快滿的時候,淘汰近期最少使用的緩存目標;

1. Bitmap #

BitmapFactory 類提供了四類方法:decodeFile、decodeResource、decodeStream 和 decodeByteArray,分別用于支持從 文件系統、資源、輸入流 和 字節數組 中加載出一個 Bitmap 對象;高效的加載 Bitmap,采用 BitmapFactory.Options 來加載所需尺寸的圖片,通過 BitmapFactory.Options 可以按一定 采樣率 來加載縮小后的圖片;比如, ImageView 的大小是 100 x 100 像素,而圖片的原始大小為 200 x 200,那么只需要將采樣率 inSampleSize 設為 2 即可。Bitmap 中使用了線程池和 Handler;(如果直接采用普通的線程去加載圖片,隨著列表的滑動可能會產生大量的線程,不利于整體的效率的提升,選擇線程池和 Handler 來提供 ImageLoader 的并發能力和訪問 UI 的能力。)5.

2. 緩存策略 #

流量對于手機用戶來說是一種寶貴的資源,除了 wifi,流量是要收費的,應用開發中不能過多的消耗用戶的流量,為了避免這個問題,緩存機制便必不可少了;程序會先從內存中去獲取,如果內存中沒有就從存儲設備中去獲取,如果存儲設備中也沒有,就從網絡上去下載這張圖片;(該緩存策略不僅僅適用于圖片,也適用于其它文件)一般來說,緩存策略包括三種操作:緩存的添加、獲取 和 刪除;采用 URL 算法的緩存有兩種:LruCache 和 DiskLruCache,LruCache 用于實現內存緩存,而后者充當了存儲設備緩存,將二者結合可以實現一個具有很高實用價值的 ImageLoader;

關于 LruCache 需要知道的幾點:

是一個泛型類,內部采用了一個 LinkedHashMap 以強引用的方式存儲外界的緩存對象,其提供了 get 和 put 方法來完成緩存的獲取和添加操作,當緩存滿的時候,LruCache 會移除較早使用的緩存對象,然后再添加新的緩存對象;LruCache 是線程安全的;

LruCache 是 Android 的源碼的一部分了;

強引用:直接的對象引用;軟引用:當一個對象只有軟引用存在的時候,系統內存不足時此對象會被 gc 回收;弱引用:當一個對象只有弱引用的時候,此對象會隨時被 gc 回收;

關于 DiskLruCache 需要知道的幾點:

DiskLruCache 用于實現存儲設備緩存,即磁盤緩存;DiskLruCache 通過將緩存對象寫入文件系統從而實現緩存的效果;DiskLruCache 不屬于 Android SDK 的一部分;DiskLruCache 提供了 open 方法用于創建自身;DiskLruCache 的緩存添加的操作是通過 Editor 完成的,Editor 表示一個緩存對象的編輯對象;可以通過 edit() 來獲取 Editor 對象;如果這個緩存正在被編輯,那么 edit() 會返回 null,即 DiskLruCache 不允許同時編輯一個緩存對象;

3. ImageLoader #

一個優秀的 ImageLoader 應該具有的功能:

圖片的同步加載圖片的異步加載圖片壓縮內存緩存磁盤緩存網絡拉取

其中內存緩存和磁盤緩存是 ImageLoader 的核心,也是 ImageLoader 的意義所在,這兩級緩存極大提高了程序的效率并且有效地降低了對用戶所造成的流量消耗,只有當這兩級緩存都不可用的時候才會嘗試從網絡中拉取圖片。

End.

Note by HF. Learn from 《Android 開發藝術探索》



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九九精品视频免费 | 国产成人精品自拍视频 | 日本在线国产 | 亚洲一区二区中文字幕在线观看 | 午夜视频亚洲 | 黄色特级片黄色特级片 | 亚洲成年人免费网站 | 红杏网站永久免费视频入口 | 日本羞羞的午夜电视剧 | 亚洲影院在线 | 91精品成人福利在线播放 | 刘亦菲一区二区三区免费看 | 九九精品在线观看 | 成人免费精品视频 | 国产一区二区免费在线观看 | 国产精品久久久久无码av | wwwxxx视频| 成人在线视频一区 | 久久9久久 | 午夜视频在线观看91 | 国产三级a三级三级 | 91社| 日韩视频一二区 | pornoⅹxxxxhd麻豆 | 色网站免费观看 | 久久久www成人免费精品 | 欧美成人精品一区二区三区 | 国产精品hd免费观看 | a视频在线播放 | 成人在线观看免费观看 | av影片在线观看 | 暴力强行进如hdxxx | 国产一级在线免费观看 | av亚洲在线观看 | 久久久久久艹 | 91网页视频入口在线观看 | 免费观看三级毛片 | 一道本不卡一区 | 久久久久亚洲a | 国产午夜精品一区二区三区免费 | 久久亚洲第一 |