真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

淺談Android中圖片的三級緩存策略-創(chuàng)新互聯(lián)

什么是三級緩存?

安順網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
  1. 內(nèi)存緩存,優(yōu)先加載,速度最快
  2. 本地緩存,次優(yōu)先加載,速度快
  3. 網(wǎng)絡(luò)緩存,最后加載,速度慢,浪費(fèi)流量

為什么要進(jìn)行三級緩存

三級緩存策略,最實(shí)在的意義就是 減少不必要的流量消耗,增加加載速度 。

如今的 APP 網(wǎng)絡(luò)交互似乎已經(jīng)必不可少,通過網(wǎng)絡(luò)獲取圖片再正常不過了。但是,每次啟動應(yīng)用都要從網(wǎng)絡(luò)獲取圖片,或者是想重復(fù)瀏覽一些圖片的時(shí)候,每次瀏覽都需要網(wǎng)絡(luò)獲取,消耗的流量就多了,在如今的流量資費(fèi)來說,肯定會容易影響用戶數(shù)量。

還有就是網(wǎng)絡(luò)加載圖片,有時(shí)候會加載很慢,影響了用戶體驗(yàn)。

另外從開發(fā)角度來說,Bitmap 的創(chuàng)建非常消耗時(shí)間和內(nèi)存,可能導(dǎo)致頻繁GC。而使用緩存策略,會更加高效地加載 Bitmap,減少卡頓,從而減少讀取時(shí)間。

而內(nèi)存緩存的主要作用是防止應(yīng)用重復(fù)將圖片數(shù)據(jù)讀取到內(nèi)存當(dāng)中,硬盤緩存則是防止應(yīng)用重復(fù)從網(wǎng)絡(luò)或其他地方重復(fù)下載和讀取數(shù)據(jù)。

三級緩存的原理

  1. 首次加載的時(shí)候通過網(wǎng)絡(luò)加載,獲取圖片,然后保存到內(nèi)存和 SD 卡中。
  2. 之后運(yùn)行 APP 時(shí),優(yōu)先訪問內(nèi)存中的圖片緩存。
  3. 如果內(nèi)存沒有,則加載本地 SD 卡中的圖片。

具體的緩存策略可以是這樣的:內(nèi)存作為一級緩存,本地作為二級緩存,網(wǎng)絡(luò)加載為最后。其中,內(nèi)存使用 LruCache ,其內(nèi)部通過 LinkedhashMap 來持有外界緩存對象的強(qiáng)引用;對于本地緩存,使用 DiskLruCache。加載圖片的時(shí)候,首先使用 LRU 方式進(jìn)行尋找,找不到指定內(nèi)容,按照三級緩存的方式,進(jìn)行本地搜索,還沒有就網(wǎng)絡(luò)加載。

圖片緩存代碼實(shí)現(xiàn)

自己實(shí)現(xiàn)一個(gè)三級緩存的工具類并不困難。大概可以這樣:

public class BitmapUtil{

  //單例模式
 //···
 
 public void displayImage(ImageView img, String url){
   Bitmap bitmap;
   //內(nèi)存緩存,url做唯一標(biāo)識符
   bitmap = loadBitmapFromMemoryCache(url);
   if(bitmap != null){
     img.setImageBitmap(bitmap);
     return ;
   }
   //本地緩存
   bitmap = loadBitmapFromDiskCache(url);
   if(bitmap != null){
     img.setImageBitmap(bitmap);
     //然后將本地緩存保存到內(nèi)存緩存中
     return ;
   }
   //網(wǎng)絡(luò)緩存
   bitmap = loadBitmapFromNet(url);
   if(bitmap != null){
     img.setImageBitmap(bitmap);
     //同理將緩存保存到內(nèi)存和本地中
     return;
   }
 }
 
}


分享題目:淺談Android中圖片的三級緩存策略-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/deeipj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部