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

Posted potato-eater

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Drawable文件夹不正确导致的内存升高问题相关的知识,希望对你有一定的参考价值。

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

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

Drawable查找顺序

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

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

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

以上是关于Drawable文件夹不正确导致的内存升高问题的主要内容,如果未能解决你的问题,请参考以下文章

我司基础组件更新本地缓存策略问题导致young gc时间升高

CPU上下文切换(上)

文件上传失败,原因99611文件不存在

vs2015 无法打开 显示应用程序无法启动,因为应用程序的并行配置不正确。 sidebyside 错误号33

server2008物理内存使用82%导致程序内存错误

JAVA内存泄露查询