【问题标题】:android memory consumption安卓内存消耗
【发布时间】:2011-12-13 02:00:21
【问题描述】:

我的@drawable 目录中有很多图片,它们通过背景属性连接到xml 布局:

<ImageButton android:background="@drawable/background1" ... />

我有很多活动,因此,当活动被销毁(按下 BACK)时,堆不会被释放。那么问题来了:

android 是否只在应用程序被销毁时才将内存中的所有内容加载一次并释放堆?在这种情况下如何防止内存消耗?只能通过图片压缩还是动态加载背景和图片?

【问题讨论】:

  • 我敢打赌,如果你不使用资源,它永远不会被加载到内存中......
  • 我知道这一点。但是当它被使用和加载时,当activity被销毁时,内存并没有被释放。

标签: android


【解决方案1】:

我认为 Android 有一个 own garbage collector,但对于 proceed it its take sometimes 而不是相关的内存,因为该对象未在使用中。每当bitmap is created its memory occupied in native heap堆垃圾收集器变得懒惰时。

所以如果可能use dynamic Image loading 而不是静态的,并尝试使用您自己的回收器或释放位图的内存

编辑:

gc() 处理所谓的短命对象的速度不如我们快 想要。

将视图对象的数量保持在一个稳定的水平*,并回收它们而不是销毁和创建新的对象。

Roman Guys 的 Avoiding memory leaks 不错的帖子请参考。

如果我错了,请告诉我。请分享更多关于此的信息。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2011-10-03
    • 2012-11-24
    • 2013-10-08
    相关资源
    最近更新 更多