嗯,标题是这样说的。
知道仍有多少内存也很方便。 我正在写一个内存饥饿的应用程序,往往会随机崩溃(在本机代码中), 而我怀疑它会失去记忆。
答案 0 :(得分:4)
我认为你很难在这个问题上找到比这更全面的答案:
How do I discover memory usage of my application in Android?
答案 1 :(得分:3)
我同意hackbod的回复。据我所知,你的应用程序不会崩溃,而是会被杀死。
你可能会觉得这个讨论很有意思
Is there a need to check for NULL after allocating memory, when kernel uses overcommit memory。
我想有一些回调知道低内存条件(onLowMemory()),你可以用它来识别低内存条件,我还没试过。
答案 2 :(得分:1)
Android上的应用程序通常不会因内存不足而崩溃。如果您使用大量内存,可能会导致大多数其他应用程序被杀死。如果你继续使用内存,你可能会导致系统杀死你的应用程序(不会崩溃它,只是杀死它),尽管你可能会在发生这种情况之前达到明显的分页。
如果您正在处理本机代码,则更可能的解释是您在某处损坏了内存。
答案 3 :(得分:0)
您可能希望捕获OutOfMemoryException,然后调用System.gc()以执行手动垃圾回收,然后重试那段失败的代码。您可以使用JNI的本机异常来检测C ++代码何时由于内存不足或预期而失败。
答案 4 :(得分:0)