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

如何找到我的Android应用程序的内存占用?,android,memory,android-ndk,Android,Memory,Android Ndk,好吧,标题说明了这一点 知道还有多少内存可用也很方便。 我正在编写一个内存不足的应用程序,它往往会随机崩溃(在本机代码中), 我的怀疑是,它已经被遗忘了。我想你很难找到一个比这个更全面的答案: 您可能希望捕获OutOfMemoryException,然后调用System.gc()执行手动垃圾收集,然后重试失败的代码。您可能可以使用JNI的本机异常来检测C++代码何时由于内存不足而失败,或者预期。 < P> Android上的应用程序通常不会因为内存不足而崩溃。如果使用大量内存,可能会导致大多数其

好吧,标题说明了这一点

知道还有多少内存可用也很方便。 我正在编写一个内存不足的应用程序,它往往会随机崩溃(在本机代码中),
我的怀疑是,它已经被遗忘了。

我想你很难找到一个比这个更全面的答案:

您可能希望捕获OutOfMemoryException,然后调用System.gc()执行手动垃圾收集,然后重试失败的代码。您可能可以使用JNI的本机异常来检测C++代码何时由于内存不足而失败,或者预期。

< P> Android上的应用程序通常不会因为内存不足而崩溃。如果使用大量内存,可能会导致大多数其他应用程序被终止。如果你继续使用内存,你可能会导致系统也关闭你的应用程序(不是让它崩溃,而是让它死掉),尽管在这之前你可能会看到明显的分页


如果您处理的是本机代码,更可能的解释是您在某处损坏了内存。

我同意hackbod的回答。据我所知,你的应用程序不会崩溃,而是会死机。 您可能会发现这个讨论很有趣
.

我想会有一些回调来了解内存不足的情况(onLowMemory()),你可以用它来识别内存不足的情况,不过我还没有尝试过。

检查哪些java对象使用的内存最多。

我目前发现我的应用程序中有一个问题,整个手机都崩溃了。就在手机重新启动之前,我看到内存分配失败的消息。当没有内存可分配时,下一个尝试分配内存的幸运应用程序会受到影响,如果它是核心应用程序,那么操作系统就会熄灯。我只是希望在这种情况发生之前有一种方法来捕捉它。不应该允许应用程序使操作系统崩溃。如果你能在bug跟踪器上用一个示例应用程序和重现问题的步骤(以及关于它正在崩溃的设备的详细信息,尽管最好是使模拟器崩溃的步骤)将bug归档,那就太好了。我认为这应该是最后一个措施。不应该依赖System.gc()!