嗯,标题说了算。
知道还有多少内存可用也很方便。我正在编写一个内存不足的应用程序,它往往会随机崩溃(在本机代码中),我怀疑它内存不足。
我认为您很难找到比这个主题更全面的答案:
如何在 Android 中发现我的应用程序的内存使用情况?
我同意 hackbod 的回复。据我了解,您的应用程序不会崩溃,而是会被杀死。你可能会觉得这个讨论很有趣
当内核使用 overcommit memory 时,是否需要在分配内存后检查 NULL。
我想有一些回调来了解内存不足的情况(onLowMemory()),你可以用它来识别内存不足的情况,不过我还没有尝试过。
Android 上的应用程序通常不会因为内存不足而崩溃。如果您使用大量内存,您可能会导致大多数其他应用程序被杀死。如果您继续使用内存,您可能会导致系统也杀死您的应用程序(不是崩溃,只是杀死它),尽管在此之前您可能会达到明显的分页点。
如果您正在处理本机代码,则更有可能的解释是您在某处破坏了内存。
您可能希望捕获 OutOfMemoryException,然后调用 System.gc() 来执行手动垃圾回收,然后重试失败的那段代码。您可以使用 JNI 的本机异常来检测 C++ 代码何时因内存不足或预期失败。
检查http://kohlerm.blogspot.com/2010/02/android-memory-usage-analysis-slides.html找出哪些 java 对象使用的内存最多