玩手機的時候點了下應(yīng)用管理,發(fā)現(xiàn)一個問題灯变,我自己寫的APP內(nèi)存占用竟然達到了200多M捅膘,而手機中其他應(yīng)用普遍都在100M以內(nèi),經(jīng)過排除寻仗,發(fā)現(xiàn)是圖片加載引起的
寫了一個Demo發(fā)現(xiàn),一張19201080的圖片放在drawable文件夾就會使APP多70M內(nèi)存署尤,但是19201080*4也才7M,Google一番后發(fā)現(xiàn)可能和drawable文件夾的名稱有關(guān)系曹体,將圖片換到drawable-xxhdpi文件夾后內(nèi)存就正常了
Drawable查找順序
APP在查找圖片資源的時候遵循先高后低的原則,假設(shè)設(shè)備的分辨率是xxhdpi箕别,那么查找順序如下
- 先去drawable-xxhdpi文件夾查找,如果有這張圖片就使用啥酱,這個時候圖片不會縮放
- 如果沒有找到,則去更高密度的文件夾下找镶殷,例如drawable-xxxhdpi,密度依次遞增绘趋,如果找到了,圖片將會縮小陷遮,因為系統(tǒng)認為這些圖片都是給高分辨率設(shè)備使用的
- 所有高密度文件夾都沒有的話,就會去drawable-nodpi文件夾去找帽馋,如果有也不會縮放
- 還是沒有的話,就會去更低密度的文件夾下面找绽族,xhdpi,hdpi等吧慢,密度依次遞減,如果找到了检诗,圖片將會放大,因為系統(tǒng)認為這個圖片是給低分辨率設(shè)備使用的
而drawable文件夾默認的dpi為160(等同于mdpi)逢慌,所以圖片將會放大,導(dǎo)致內(nèi)存增高