【问题标题】:Android - strange app Heap behaviorAndroid - 奇怪的应用程序堆行为
【发布时间】:2011-08-31 13:03:57
【问题描述】:

我通过 DDMS 测量了我的应用程序的实际分配 RAM,它导致了 GC,它显示了实际分配的 RAM。

我做了一个简单的活动项目,一一进行。这是内存分配的状态(以 MB 为单位):

---->我正在开启活动

开始 > 2,258 > 2,305 > 2,335 > 2,366 > 2,390 > 2,419 > 2,441 > 2,472 > 2,496

现在我回到第一个活动:

                     I am closing activities        <----

...结束

我的结果 - 尽管我已经返回到应用程序的起点,但分配的空间大约大了 60kB?为什么这样?我敢肯定,当我尝试以这种方式打开更多强度然后关闭它们时,差异会更大。我的应用程序是否在 ...End 点仍然保留一些对上次活动的引用的“痕迹”?

谢谢

【问题讨论】:

  • 可能是的。如果您有时间,我推荐上次 google IO 中的“Android 应用程序的内存管理”会话。有一些很好的解释和方法来描述提到的这种行为。 google.com/events/io/2011/sessions/…
  • 谢谢...我一定会看的,你知道吗,有没有什么办法可以强制和app释放源(清理它!堆)?
  • 您可以调用System.gc()。但这 a) 只是对垃圾收集器的提示,而不是命令,并且 b) 通常不明智,因为通常需要多次运行 gc 才能真正释放资源。还有c)它基本上搞乱了androids内存管理。

标签: android memory-management


【解决方案1】:

确保释放活动的 ondestroy 方法中的所有引用。

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 2023-03-03
    • 2016-11-02
    相关资源
    最近更新 更多