加载Bitmap出现OutofMemoryError的缘由:spa
一、移动设备一般有限制的系统资源。 Android设备有少的16MB内存可用于单个应用程序,虚拟机的兼容性提供了所需的最小内存为各类屏幕尺寸和密度的应用程序。许多设备都配置了更高的限制。内存
二、位图占用了大量的内存,尤为是对丰富的图像就像照片。例如,对Galaxy Nexus的相机拍摄的照片多达2592x1936像素( 5百万像素) 。若是所使用的位图配置ARGB_8888 (从Android 2.3之后的默认值) ,而后加载这个映像复制到内存大约须要内存19MB (2592 * 1936 * 4字节) ,立刻耗尽每一个应用程序限制在某些设备上。资源
三、Android应用程序用户界面的常常须要几个位图一次被加载。如ListView中, GridView和ViewPager组件一般包括多个位图在屏幕上马上多了不少潜在的随手指滑动显示。虚拟机