Drawable文件夹不正确导致的内存升高问题

玩手机的时候点了下应用管理,发现一个问题,我自己写的APP内存占用竟然达到了200多M,而手机中其他应用普遍都在100M以内,经过排除,发现是图片加载引起的

写了一个Demo发现,一张19201080的图片放在drawable文件夹就会使APP多70M内存,但是19201080*4也才7M,Google一番后发现可能和drawable文件夹的名称有关系,将图片换到drawable-xxhdpi文件夹后内存就正常了

Drawable查找顺序

APP在查找图片资源的时候遵循先高后低的原则,假设设备的分辨率是xxhdpi,那么查找顺序如下

  • 先去drawable-xxhdpi文件夹查找,如果有这张图片就使用,这个时候图片不会缩放
  • 如果没有找到,则去更高密度的文件夹下找,例如drawable-xxxhdpi,密度依次递增,如果找到了,图片将会缩小,因为系统认为这些图片都是给高分辨率设备使用的
  • 所有高密度文件夹都没有的话,就会去drawable-nodpi文件夹去找,如果有也不会缩放
  • 还是没有的话,就会去更低密度的文件夹下面找,xhdpi,hdpi等,密度依次递减,如果找到了,图片将会放大,因为系统认为这个图片是给低分辨率设备使用的

而drawable文件夹默认的dpi为160(等同于mdpi),所以图片将会放大,导致内存增高

你可能感兴趣的:(Drawable文件夹不正确导致的内存升高问题)