在作内存优化的时候,咱们发现除了解决内存泄露问题,剩下的就只有想办法减小真实的内存占用。而在App中,大部份内存可能被咱们图片占用了,因此减小图片的内存占用能够带来直接的效果。本文就简单介绍一张图片到底占用多少内存,咱们先假设咱们有一张图片时 600 * 800 的,图片占用空间大小假设是 100KB。另外本文知识点也是面试官喜欢问的一个点,看看本身的回答到什么级别了。html
图片内存大小跟占用空间大小有什么关系?android
占用空间的大小不是图片占用内存的大小,一些初学者可能会误解一下。占用空间是在磁盘上占用的空间,内存大小是加载到内存中占用的内存大小。两个只是单位是同样的,本质不是一个概念。面试
一张图片到底占用多少内存呢?优化
1. 图片占用内存的计算公式:图片高度 * 图片宽度 * 一个像素占用的内存大小编码
2. 因此上面的图片占用内存是:800 * 600 * 4 byte = 1875KB = 1.83M spa
上面的计算公式中,为何是4byte呢?htm
4byte是跟图片的编码格式有关系,更多详情请移步blog
http://www.cnblogs.com/popfisher/p/6770018.html图片
图片所在目录对内存的影响?内存
在Android中,图片的存放目录和手机的屏幕密度影响图片最终的大小,举个例子:
假设咱们的图片放到xhdpi目录下,那么咱们本文中的图片占用的内存大小以下:
屏幕密度为2的设备:800 * 600 * 4byte = 1.83M
屏幕密度为3的设备:800 * 1.5 * 600 * 1.5 * 4byte = 1.83 * 2.25M = 4.12M
因此,计算图片占用内存大小的时候,要考虑图片所在的目录跟设备密度,这两个因素其实影响的是图片的高宽,android会对图片进行拉升跟压缩。
总结
1. 图片确实很占用内存,内存优化先考虑图片内存占用;
2. 必定要避免使用大图片,这就是.9图颇有用的缘由之一;
3. 图片的大小对内存的影响是正比关系;
4. 本文只是简单的告知读者怎么计算图片的内存大小。
5. 如何减小图片内存占用的方法总结请看 http://www.cnblogs.com/popfisher/p/6770018.html