Android 性能優(yōu)化:手把手教你優(yōu)化Bitmap圖片資源的使用

前言

  • 在 Android開發(fā)中竟贯,性能優(yōu)化策略十分重要
  • 本文主要講解性能優(yōu)化中的Bitmap 使用優(yōu)化,希望你們會喜歡

目錄

1.png

1. 優(yōu)化原因

即 為什么要優(yōu)化圖片Bitmap資源,具體如下圖:


1.png

2. 優(yōu)化方向

本文將從 以下方面優(yōu)化圖片Bitmap資源的使用 & 內(nèi)存管理


1.png

3. 具體優(yōu)化方案

下面措近,我將詳細(xì)講解每個優(yōu)化方向的具體優(yōu)化方案


1.png

3.1 使用完畢后 釋放圖片資源

  • 優(yōu)化原因
    使用完畢后若不釋放圖片資源,容易造成內(nèi)存泄露,從而導(dǎo)致內(nèi)存溢出
  • 優(yōu)化方案
    a. 在 Android2.3.3(API 10)前扶叉,調(diào)用 Bitmap.recycle()方法
    b. 在 Android2.3.3(API 10)后,采用軟引用(SoftReference)
  • 具體描述
    在 Android2.3.3(API 10)前帕膜、后枣氧,Bitmap對象 & 其像素數(shù)據(jù) 的存儲位置不同,從而導(dǎo)致釋放圖片資源的方式不同垮刹,具體如下圖


    1.png

注:若調(diào)用了Bitmap.recycle()后达吞,再繪制Bitmap,則會出現(xiàn)Canvas: trying to use a recycled bitmap錯誤

3.2 根據(jù)分辨率適配 & 縮放圖片

  • 優(yōu)化原因
    若 Bitmap 與 當(dāng)前設(shè)備的分辨率不匹配荒典,則會拉伸Bitmap酪劫,而Bitmap分辨率增加后,所占用的內(nèi)存也會相應(yīng)增加

因為Bitmap 的內(nèi)存占用 根據(jù) x寺董、y的大小來增加的

  • 優(yōu)化方案


    1.png

3.3 按需 選擇合適的解碼方式

  • 優(yōu)化原因
    不同的圖片解碼方式 對應(yīng)的 內(nèi)存占用大小 相差很大覆糟,具體如下


    1.png
  • 優(yōu)化方案
    根據(jù)需求 選擇合適的解碼方式

使用參數(shù):BitmapFactory.inPreferredConfig 設(shè)置
默認(rèn)使用解碼方式:ARGB_8888

3.4 設(shè)置 圖片緩存

  • 優(yōu)化原因
    重復(fù)加載圖片資源耗費太多資源(CPU、內(nèi)存 & 流量)

  • 優(yōu)化方案


    1.png

關(guān)于三級緩存機制螃征,此處不作過多描述搪桂,具體請看文章:三級緩存說明

至此,關(guān)于圖片資源Bitmap的使用優(yōu)化講解完畢

4. 總結(jié)

  • 本文全面總結(jié)了圖片資源Bitmap的使用優(yōu)化盯滚,具體如下圖


    1.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踢械,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子魄藕,更是在濱河造成了極大的恐慌内列,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件背率,死亡現(xiàn)場離奇詭異话瞧,居然都是意外死亡,警方通過查閱死者的電腦和手機寝姿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門交排,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饵筑,你說我怎么就攤上這事埃篓。” “怎么了根资?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵架专,是天一觀的道長。 經(jīng)常有香客問我玄帕,道長部脚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任裤纹,我火速辦了婚禮委刘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹰椒。我一直安慰自己锡移,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布吹零。 她就那樣靜靜地躺著罩抗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灿椅。 梳的紋絲不亂的頭發(fā)上套蒂,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機與錄音茫蛹,去河邊找鬼操刀。 笑死,一個胖子當(dāng)著我的面吹牛婴洼,可吹牛的內(nèi)容都是我干的骨坑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼欢唾!你這毒婦竟也來了且警?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤礁遣,失蹤者是張志新(化名)和其女友劉穎斑芜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祟霍,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡杏头,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沸呐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醇王。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖崭添,靈堂內(nèi)的尸體忽然破棺而出寓娩,到底是詐尸還是另有隱情,我是刑警寧澤滥朱,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布根暑,位于F島的核電站,受9級特大地震影響徙邻,放射性物質(zhì)發(fā)生泄漏排嫌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一缰犁、第九天 我趴在偏房一處隱蔽的房頂上張望淳地。 院中可真熱鬧,春花似錦帅容、人聲如沸颇象。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遣钳。三九已至,卻和暖如春麦乞,著一層夾襖步出監(jiān)牢的瞬間蕴茴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工姐直, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留倦淀,地道東北人宣虾。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓环鲤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親也祠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容