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时间升高