2012-04-19 47 views
0

我在Android 2.2平台上编程图像分割算法。运行以下代码行时:在Android平台上编程时内存不足

double[][] temp=new double[328][576]; 

存在内存不足异常。

但是,我用的是ActivityMannager.getMemoryInfo()来检查系统上的可用内存空间,我觉得还是有44851200个字节的自由空间。

我感到困惑的是为什么会出现内存溢出异常与系统上仍然是免费的空间?

+0

尝试在应用程序中使用'短寿命变量弱reference' – 2012-04-19 20:26:08

+1

'ActivityMannager.getMemoryInfo()'告诉你可用内存为*设备*,不只是你的过程。 – CommonsWare 2012-04-19 20:28:22

回答

7

Android有存储器分配的限制每个过程/应用程序。您只能在手机上使用整个可用内存。根据设备的不同,每个进程的最大内存使用量都有限制。这link可能会帮助你。