我正在开发一个 android 应用程序,它有很多位图,使用大量 RAM。我的问题是,当我让我的应用程序长时间运行并且内存使用量超过 64 MB 时,应用程序崩溃并出现“内存不足错误,VM 不会让我们分配......等等”。
而其他应用程序(例如 facebook)有时会达到 200 MB 内存而没有任何崩溃并且性能非常快。我的设备是 Galaxy S II。
请注意,我的问题不是关于减少内存使用量,而是关于我的应用程序和其他应用程序之间内存限制的差异。
谢谢。
我正在开发一个 android 应用程序,它有很多位图,使用大量 RAM。我的问题是,当我让我的应用程序长时间运行并且内存使用量超过 64 MB 时,应用程序崩溃并出现“内存不足错误,VM 不会让我们分配......等等”。
而其他应用程序(例如 facebook)有时会达到 200 MB 内存而没有任何崩溃并且性能非常快。我的设备是 Galaxy S II。
请注意,我的问题不是关于减少内存使用量,而是关于我的应用程序和其他应用程序之间内存限制的差异。
谢谢。
我认为应用程序可以使用的内存量是有限制的……以前是 32MB……可能有一个权限,您可以更改以请求更多内存,就像您可以请求硬件加速一样. 从快速谷歌 android:largeHeap="true" 可能是你的答案......还有 Runtime.getRuntime().maxMemory(); 可能有帮助?这个链接也很有趣...
The amount of memory that the vm is reserving for each application is not part of the Android ecosystem and can't be determined, it's part of the configuration given by the manufacturer.
Usually the last word about the memory size for each vm is given by the file build.prop
.
Do not use the NDK trick if you do not know what are you doing.