如何找出我的Android应用程序的内存占用?

时间:2010-02-22 15:04:57

标签: android memory android-ndk

嗯,标题是这样说的。

知道仍有多少内存也很方便。 我正在写一个内存饥饿的应用程序,往往会随机崩溃(在本机代码中), 而我怀疑它会失去记忆。

5 个答案:

答案 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)