【问题标题】:Application occupying Much Memory on Nexus 4.2.1在 Nexus 4.2.1 上占用大量内存的应用程序
【发布时间】:2013-01-15 09:55:26
【问题描述】:

在我的项目中,我使用一些可绘制对象来创建漂亮的 UI,但我遇到的奇怪问题是它在 Kindle Fire 上运行良好,2.3.4 版本正常并且仅占用 2.8397MB,但是当我运行相同的应用程序时在 nexus 4.2.1 设备中,它需要 23.45678MB 到 30MB 并且运行非常缓慢,我认为问题出在可绘制对象上,因此为它们创建了 9 个补丁,但仍然遇到同样的问题。

【问题讨论】:

  • 只有当我将设备连接到分配跟踪器以观察内存时才会出现问题,但是当我在用户视角下运行时,它运行良好,没有任何问题
  • 你能具体说明什么是nexus和kindle吗?点燃火5?连结7? Galaxy Nexus?
  • Nexus 7 和 kindle fire 6.3 设备@Glenn
  • 您是否尝试在应用设置中查看应用的内存使用情况?
  • 使用 DDMS 的堆转储和 MAT 来确定您的内存在哪里被消耗。使用 Traceview 确定 CPU 的消耗位置。在完成这些操作之前,请勿发布有关内存或 CPU 使用率的 StackOverflow 问题。

标签: android android-4.2-jelly-bean google-nexus


【解决方案1】:

在预蜂窝设备(如 2.3.4 Kindle Fire)上,位图存储在本机堆中,在分析 ddms 中的 dalvik 堆内存使用情况时,它不会显示

这确实意味着它仍然不会计入堆限制。

Honeycomb 和更高版本的设备将位图存储在 dalvik 堆中,该堆将显示在 ddms 中。这应该可以解释为什么 Kindle Fire 上的内存使用量要“少得多”。不是,它只是看起来那样。

【讨论】:

    【解决方案2】:

    每个分辨率有不同的drawable 文件夹吗?如果是这样,这可能与您在不同文件夹中拥有的资源有关,因此您的 Nexus 上加载的可绘制对象比您的 kindle fire 上加载的要大得多(kindle fire 的分辨率为 1024x600,而 Nexus 7分辨率为 1280x800)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多