2012-09-20 165 views
1

我正在开发一个Android应用程序,它有很多使用大量RAM的位图。我的问题是,当我的应用程序长时间运行并且内存使用率超过64 MB时,应用程序崩溃时出现“内存不足错误,VM不会让我们分配......等等”。为什么我的Android应用程序的内存限制最大为64 MB?

虽然其他应用程序,如脸谱达到200 MB RAM有时没有任何崩溃,并具有非常快的性能。我的设备是Galaxy S II。

请注意,我的问题不是减少内存使用量,而是关于我的应用程序和其他应用程序之间的内存限制差异。

谢谢。

+1

我无知地说,但我真的怀疑Facebook使用200MB的内存。 – AedonEtLIRA

+0

打开它,并保持向下滚动更多新闻提要几分钟,然后看。 –

回答

1

我认为应用程序可以使用的内存量有限制...以前是32MB ...可能会有一个权限,您可以更改以请求更多的内存,就像您一样可以请求硬件加速。从一个快速的谷歌android:largeHeap =“true”可能是你的答案...另外Runtime.getRuntime()。maxMemory();可能有帮助? This link也很有趣......

+0

我真的很想写一个测试应用程序来超过这个限制 - 让我知道如果你找到答案! – 0909EM

+0

感谢您的回答。看起来是正确的答案,但不幸的是我不能使用它,因为它支持API 11+,而我的目标是API 8 + –

+1

@ 0909EM,这是不正确的,内存限制是由品牌给出,并有一个那里有很多不同的设备。 – Ken

0

vm为每个应用程序预留的内存量不是Android生态系统的一部分,无法确定,它是制造商给出的配置的一部分。

通常,有关每个虚拟机的内存大小的最后一个单词由文件build.prop给出。

如果你不知道你在做什么,不要使用NDK技巧。

相关问题