【问题标题】:android - how to get total memory usage of the application at runtime?android - 如何在运行时获取应用程序的总内存使用量?
【发布时间】:2012-05-28 13:05:59
【问题描述】:

我知道关于这个问题有多种解决方案和问题,但我测试过的没有一个适用于所有 android 版本,包括蜂窝和冰淇淋三明治。

例如,我创建了一个使用越来越多内存的应用程序,并使用“Debug.getNativeHeapAllocatedSize()”来获取内存使用情况,但它在摩托罗拉 xoom 上返回一个相对恒定的数字(即使我出现内存不足错误),但连接上的数字在变化。

获取应用程序进程使用的总内存的最佳方法是什么(在代码内部,而不是通过 ddms)?

【问题讨论】:

  • 你读过我写的吗?我没有成功使用我找到的任何解决方案。这是我测试过的非常受欢迎的帖子,即使这样也不起作用。请尝试在多个 API(包括蜂窝和姜饼)上使用它,并在每次创建新位图后获取可用内存(直到内存不足错误)并查看它是否无法按预期工作。跨度>
  • “你读过我写的东西吗?” ——是的,我做到了。 “我没有成功使用我找到的任何解决方案”——这很好。您列出的解决方案不在我引用的帖子中,您也没有引用您尝试过的任何其他内容。如果您阅读我引用的帖子,您会注意到 Hackborn 女士(核心 Android 开发人员之一)说“您真正正确解释所获得的任何数字的机会非常低”......甚至对于 Android 开发人员也是如此团队。
  • 因此,无论您试图通过获取“应用程序进程使用的总内存”来解决什么问题,都极有可能需要以其他方式解决。
  • 所以你是说这样的事情是不可能的?

标签: android memory-management process


【解决方案1】:

试试下面这个方法,它会告诉你 DVM 的可用内存:

Runtime.getRuntime().freeMemory();

【讨论】:

  • 不起作用 - 在我的测试中,姜饼和蜂窝的大小一直相同。
猜你喜欢
  • 2015-05-25
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 2012-11-12
  • 2015-04-27
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
相关资源
最近更新 更多