我正在开发一个Android应用程序,它有很多使用大量RAM的位图。我的问题是,当我的应用程序长时间运行并且内存使用率超过64 MB时,应用程序崩溃时出现“内存不足错误,VM不会让我们分配......等等”。为什么我的Android应用程序的内存限制最大为64 MB?
虽然其他应用程序,如脸谱达到200 MB RAM有时没有任何崩溃,并具有非常快的性能。我的设备是Galaxy S II。
请注意,我的问题不是减少内存使用量,而是关于我的应用程序和其他应用程序之间的内存限制差异。
谢谢。
我正在开发一个Android应用程序,它有很多使用大量RAM的位图。我的问题是,当我的应用程序长时间运行并且内存使用率超过64 MB时,应用程序崩溃时出现“内存不足错误,VM不会让我们分配......等等”。为什么我的Android应用程序的内存限制最大为64 MB?
虽然其他应用程序,如脸谱达到200 MB RAM有时没有任何崩溃,并具有非常快的性能。我的设备是Galaxy S II。
请注意,我的问题不是减少内存使用量,而是关于我的应用程序和其他应用程序之间的内存限制差异。
谢谢。
我认为应用程序可以使用的内存量有限制...以前是32MB ...可能会有一个权限,您可以更改以请求更多的内存,就像您一样可以请求硬件加速。从一个快速的谷歌android:largeHeap =“true”可能是你的答案...另外Runtime.getRuntime()。maxMemory();可能有帮助? This link也很有趣......
vm为每个应用程序预留的内存量不是Android生态系统的一部分,无法确定,它是制造商给出的配置的一部分。
通常,有关每个虚拟机的内存大小的最后一个单词由文件build.prop
给出。
如果你不知道你在做什么,不要使用NDK技巧。
我无知地说,但我真的怀疑Facebook使用200MB的内存。 – AedonEtLIRA
打开它,并保持向下滚动更多新闻提要几分钟,然后看。 –