亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

基于android示例程序(bitmapfun) 高效加載圖片讓人無語地方

2020-04-11 12:26:54
字體:
來源:轉載
供稿:網友

  在android的開發指南上有這樣一篇文章,如何更有效率的加載圖片,地址為 https://developer.android.com/training/displaying-bitmaps/index.html,這篇文章詳細地介紹了如何加載高清圖到內存,同時避免系統報OOM的問題,文章寫得很不錯,示例程序也可以直接運行。在我們項目的一次小版本升級的過程中,我們嘗試了使用git上的一個開源項目afinal(bitmapfun的封裝版)來加載圖片,但是在測試的時候發現了一個問題,新的圖片加載器(bitmapfun)比之前用的ImageDownloader要慢很多,特別是在網絡狀況不好的時候,那簡直是坑爹,等5s鐘算少的,一般要等10s左右,老大找到我,說這個圖片加載不出來啊,太慢了。我靠,不是吧,這玩笑開的有點大了吧,拿來一用,果然是慢很多。

  然后開始了調試工作,開始我在想是不是網絡下載部分不一樣,之前用的是httpclient,現在bitmapfun用的是url.openConnection,果斷替換成之前的httpclient方法,感覺有所好轉(其實是自己心理在作怪),再試試,發現有時快,有時慢,對比之前的,之前的圖片一直很穩定,不會出現這種情況啊,然后想了個辦法,在項目中的找了兩個頁面,一個用之前的ImageDownload加載,另一個用bitmapfun加載,然后把各個時段(可以分為3段吧,1是從內存緩存中查找、2是從網絡加載、3是存到內在緩存和sdcard緩存)的時間打印出來對比,發現確實是bitmapfun下載這塊(processBitmap方法)里面最耗時間,這部分的代碼,看到同步鎖,應該是他吧,咋一看,沒問題啊,只鎖住一小塊,應該是防止緩存沒被初始化的吧,過。。。再往下看,頻繁的對sdcard進行io操作,恩對,應該是這里,把剛才的方法重復一下,分段打印耗時,一看結果,tnnd,占用時間最長的居然是wait操作,也就是那個鎖的等待,再去看下代碼,雙擊下鎖的范圍,發現基本是對整個下載過程進行了同步鎖定,這尼瑪,太坑爹了吧,一個圖片在下載的時候,其他的都得在那等著,那前面新建的3個核心線程,被你同步成一個,我說怎么看到這個加載圖片這么整齊,一個個出現。

  發現了問題,問下為什么,他這么做的原因是什么,其實就是為了那個DiskLruCache的日志文件,不允許多個線程同時操作,否則日志會錯亂,就沒辦法統計哪個文件是最久未被使用的。自己想試著改下鎖的范圍,發現有點困難,因為下載過程中對日志文件操作的太頻繁了,哪位大牛有好的方法告訴下我,不勝感激。

  對使用bitmapfun或者afinal的一點建議,DiskLruCache慢的關鍵在于對日志文件(目錄下journal文件)的要求太高了,日志文件的作用就是記錄每一個文件的訪問次數,所以它每一次讀取和寫入都要寫入日志記文件,這樣是可以更準確的統計出最久未被使用的文件,但是代價太高了(頻繁的io操作和同步鎖),記得上個版本的bitmapfun是不用日志文件的,直接從程序訪問sdcard緩存開始計算訪問時間,其實這樣更合適一些,對性能更好。所以如果使用這個示例程序來加載圖片,最好的方式就是使用上個版本的DiskLruCache或者自己想辦法來實現日志文件的記錄,有更好的方法包括日志文件的記錄方法,記得告訴我哦!

附:老版本的bitmapfun,不想自己重寫文件鎖的同學可以把這里面的文件緩存移植進去。點擊文件下載

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲深夜福利在线| 久久久久久久一区二区三区| 91久久精品日日躁夜夜躁国产| 91国内免费在线视频| 国产在线视频2019最新视频| 98精品国产高清在线xxxx天堂| 国产日韩欧美综合| 国产精品极品美女粉嫩高清在线| 欧美日韩人人澡狠狠躁视频| 日韩亚洲精品视频| 久久777国产线看观看精品| 亚洲综合精品伊人久久| 日本久久久久久久久久久| 国产成人自拍视频在线观看| 91免费视频网站| 日韩av影片在线观看| 国产精品吹潮在线观看| 26uuu亚洲国产精品| 国产成人一区二区三区小说| 亚洲第一综合天堂另类专| 日韩三级影视基地| 在线播放国产精品| 欧美日韩国产精品专区| 成人在线小视频| 国产欧美日韩丝袜精品一区| 欧美高清无遮挡| 亚洲白虎美女被爆操| 亚洲第一区在线| 亚洲成**性毛茸茸| 国产精品久久久久久久久久ktv| 亚洲精品美女久久久久| 日韩欧美精品免费在线| 日韩欧美高清在线视频| 91精品综合久久久久久五月天| 日韩视频永久免费观看| 国产日韩在线一区| 91香蕉嫩草神马影院在线观看| 国产精品久久久久久久天堂| 成人精品久久一区二区三区| 91精品国产99久久久久久| 91精品国产自产91精品| 日韩美女视频免费看| 成人久久一区二区| 久久亚洲精品中文字幕冲田杏梨| 久久99青青精品免费观看| 欧美一区亚洲一区| 日韩福利伦理影院免费| 亚洲精品美女久久久久| 亚洲色图av在线| 伊人久久综合97精品| 九九精品在线播放| 91在线免费网站| 九九热99久久久国产盗摄| 奇米一区二区三区四区久久| 免费成人高清视频| 欧美视频在线观看免费网址| 国产不卡av在线免费观看| 国产精品大片wwwwww| 欧美在线精品免播放器视频| 5566成人精品视频免费| 国产精品视频白浆免费视频| 欧美午夜激情在线| 欧美成人免费一级人片100| 国产午夜精品全部视频在线播放| 亚洲男人天天操| 精品国内自产拍在线观看| 热门国产精品亚洲第一区在线| 日韩欧美在线免费| 中文字幕免费精品一区高清| 国内精品久久久久| 国产精品99久久99久久久二8| 日韩人在线观看| 亚洲第一色中文字幕| 久久免费精品视频| 一本色道久久综合狠狠躁篇怎么玩| 精品视频在线观看日韩| 红桃视频成人在线观看| 中国china体内裑精亚洲片| 欧美视频免费在线| 欧美激情成人在线视频| 亚洲国产91精品在线观看| 日韩视频在线免费观看| 国产成人精品国内自产拍免费看| 亚洲自拍小视频免费观看| 一本一本久久a久久精品综合小说| 亚洲国产成人精品久久| 亲子乱一区二区三区电影| www欧美xxxx| 欧美午夜宅男影院在线观看| 日韩**中文字幕毛片| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产69久久精品成人| 亚洲最大中文字幕| 久久精品国产v日韩v亚洲| 清纯唯美亚洲激情| 久久精品最新地址| 精品视频在线播放| 亚洲2020天天堂在线观看| 国产精品igao视频| 欧美另类69精品久久久久9999| 少妇高潮久久久久久潘金莲| 美女精品久久久| 久久久久久亚洲| 最近2019好看的中文字幕免费| 亚洲第一级黄色片| 97超视频免费观看| 91免费人成网站在线观看18| 国产网站欧美日韩免费精品在线观看| 欧美高清理论片| 久久久国产一区二区三区| 色偷偷综合社区| 国产精品久久久久久久久久久久| 欧美激情在线观看视频| 成人日韩在线电影| 丝袜亚洲另类欧美重口| 成人h片在线播放免费网站| 亚洲精品国产品国语在线| 国产精品美女无圣光视频| 国产精品wwwwww| 久久好看免费视频| 国产一区二区三区直播精品电影| www.国产精品一二区| 日韩视频免费观看| 亚洲欧美一区二区激情| 国产亚洲一区二区精品| 国产一区二区三区视频免费| 国产精品一香蕉国产线看观看| 国产视频丨精品|在线观看| 91精品视频免费| 国产成人av在线| 正在播放亚洲1区| 欧美精品免费在线| 日韩女在线观看| 久久九九精品99国产精品| 久久夜精品香蕉| 欧美精品一区在线播放| 这里只有精品丝袜| 欧美在线观看日本一区| 成人免费直播live| 在线视频日韩精品| 亚洲精品在线视频| 色综合亚洲精品激情狠狠| 国内精品久久久久伊人av| 欧美刺激性大交免费视频| 宅男66日本亚洲欧美视频| 国产一区红桃视频| 亚洲a成v人在线观看| 欧美亚洲国产视频小说| 青草成人免费视频| 午夜精品久久久99热福利| 国产suv精品一区二区| 久久久人成影片一区二区三区观看| 国产精品三级久久久久久电影| 亚洲欧美国内爽妇网| 91免费国产视频| 国产精品∨欧美精品v日韩精品| 国产精品日韩欧美大师| 国产日韩专区在线| 欧美精品18videos性欧| 亚洲人午夜色婷婷| 国产美女被下药99| 91色p视频在线| 97视频免费在线观看| 亚洲人成绝费网站色www|