Android4.0 输出分辨率改为1280*720后,出现Out of Memory
1、出现这个问题的原因是由于Bitmap decode 引发的,我们知道,android程序内存一般限制在16M,当然也有24M的,而android程序内存被分为2部分:native和dalvik:dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是native+dalvik不能超过最大限制。
用以下命令可以查看程序的内存使用情况:
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);activityManager.getMemoryClass();
以上方法会返回以 M 为单位的数字,可能在不同的平台或者设备上值都不太一样,比如:HTC G7 默认 24M,Galaxy 36M,emulator-2.3 24M,等等。
7、关于这个问题的一些网上资料:
http://blog.csdn.net/wangqilin8888/article/details/7737278
http://blog.csdn.net/wangqilin8888/article/details/7752491
http://my.oschina.net/kangchunhui/blog/67613
http://7dot9.com/2010/08/android-bitmap%E5%86%85%E5%AD%98%E9%99%90%E5%88%B6/
http://blog.csdn.net/wbw1985/article/details/6044724
http://www.cnblogs.com/idiottiger/archive/2012/05/08/2428875.html