【问题标题】:Android:How to let the HEAP SIZE lower?Android:如何让 HEAP SIZE 降低?
【发布时间】:2013-08-17 10:58:02
【问题描述】:

问题是:
当我的应用程序第一次启动时,它会显示使用一些大图片的访客页面(我不能让图片变小)。这些图片占用了10M多的内存,所以当时堆的大小是20M多的。那个时候没关系。
然后我的应用使用了一个长时间运行的服务,该服务使用了大约10M内存。但是当用户查看设置中的“正在运行的应用程序”时,他们会看到我的应用使用20M内存而不是10M !这是因为我的堆大小总是20M!我怎样才能让堆大小变小???
P.S.我是中国人,所以我的英语很差,对此我很抱歉。

【问题讨论】:

  • 我认为如果你确保垃圾收集器可以完成它的工作并且不要持有不再需要的图片等项目,你的堆大小会再次缩小。但总的来说,我不会太担心堆大小,只要您确定不会出现内存不足异常并且有正当理由使用大堆,例如显示很多大图片。
  • @StefandeBruijn 我看看 DDMS 的“堆”。 heap size是20M,但是Allocated size只有10M,说明图片已经被销毁了,然后我导致GC超过10次,heap size仍然没有缩小。而且,我很担心heap尺寸,因为国内有很多小内存手机(比如安卓4.0的512M)。用户看到我的程序使用 20M 会很生气。另一方面,我的竞争对手的一些其他程序只使用 4.0M !请帮帮我...

标签: android memory memory-leaks heap-memory


【解决方案1】:

如果您将 UI 和后台服务放在不同的进程中,您应该不会遇到这个问题。当然,迁移到多进程架构是非常复杂的,但我尝试过,发现它确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2012-03-27
    • 2021-09-02
    相关资源
    最近更新 更多