java–Android OutOfMemory但内存备用

java–Android OutOfMemory但内存备用,第1张

概述所以我一直试图让内存密集型程序工作,并继续遇到内存错误.我已经阅读了其他主题,他们都谈论内存泄漏,但我不认为这是这种情况.我创建了一个分配1兆字节空间的按钮,然后以兆字节(maxmem,totalmem,freemem)显示内存使用情况.最初我有(40,5,2),我按下按钮(40,6,2).我一直按下按钮,我

所以我一直试图让内存密集型程序工作,并继续遇到内存错误.我已经阅读了其他主题,他们都谈论内存泄漏,但我不认为这是这种情况.

我创建了一个分配1兆字节空间的按钮,然后以兆字节(maxmem,totalmem,freemem)显示内存使用情况.最初我有(40,5,2),我按下按钮(40,6,2).我一直按下按钮,我得到(40,7,2),(40,8,2),(40,9,2),然后是OutOfMemory.我期待(40,10,2)并且在我击中(40,40,0)之前不应该得到OutOfMemory,对吗?

int[][] hi = new int[100][];int i = 0;public voID save(VIEw vIEw) {    hi[i] = new int[256*1024];    i++;    TextVIEw tv1 = (TextVIEw) findVIEwByID(R.ID.seekbar1Text);    System.gc();    tv1.setText("Memory is max " + Runtime.getRuntime().maxMemory()/1024/1024 + " total " + Runtime.getRuntime().totalMemory()/1024/1024 + " free " + Runtime.getRuntime().freeMemory()/1024/1024);}

解决方法:

我注意到Dianne Hackborn’s definitive answer on Android memory measurement不使用Runtime方法.因此,我不知道我是否会信任他们.对于初学者,我知道没有具有40MB堆大小的AndroID设备.

此外,您似乎假设OutOfMemoryError意味着您完全没有内存.尝试分配失败时将发生OutOfMemoryError.这可能是因为没有你所寻求的单一自由块.由于Dalvik VM的GC例程的性质,这在AndroID上比在其他 *** 作系统上更容易发生.

总结

以上是内存溢出为你收集整理的java – Android OutOfMemory但内存备用全部内容,希望文章能够帮你解决java – Android OutOfMemory但内存备用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1109751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存