Android加载图片到内存的真实大小

首先在SD卡上放一张照片,分辨率为1920×1080,大小为3.35MB的JPG图片,那么问题来了?使用ImageView加载这张图片,dalvikvm虚拟机需要多少内存呢?(Android系统主要用于低能耗的移动设备,所以对内存的管理有很多限制,一个应用程序一般默认会为其分配最大16MB(某些机型是24MB)的空间作为堆内存空间,所以不能超过这个值,否则会发生堆内存溢出)


我们看一下创建AVD的时候的设置界面

Android加载图片到内存的真实大小_第1张图片


那么我们来计算一下真实的内存消耗:
我们首先看一下关键的图片参数:
1.宽度:1080像素
2.高度:1920像素

我们都知道,图片是由一个一个点分布组成的(分辨率),通常加载这类数据都会在内存中创建一个二维数组,数组中的每一项代表一个点,每一点又是由ARGB色组成,每个色素占4个Byte,所以这张图片加载到内存中需要消耗的内存为:

1920×1080×4byte=8294400byte,大约需要8.2MB


你可能感兴趣的:(内存,加载图片,真实大小)