【问题标题】:Memory Allocation in Layout布局中的内存分配
【发布时间】:2012-07-20 04:26:37
【问题描述】:

在我的项目中,我有一个由单个 XML 布局(由 setContentView 启用)组成的简单活动。该项目还有其他活动。

布局基本上由两个 .jpg 图像组成。第一个大小为 25kB,大小为 400x153 像素。第二个有 4kB,大小为 150x50 像素。

尽管有这个非常简单的上下文,DDMS 告诉我我有 13MB 分配给我的程序,我认为这是巨大的,因为我只加载了两个小图像,并且某些设备的每个程序的最大堆大小为 16MB .

在这种布局中堆这么大是正常的吗?

编辑:HProf转储:

问题嫌疑人1: 由“”加载的“android.content.res.Resources”类占用9,429,232(70.39%)字节。内存在“”加载的“java.lang.Object[]”的一个实例中累积。

问题嫌疑人2: 由“”加载的“android.graphics.Bitmap”的3个实例占用2,147,960(16.03%)字节。

Biggest instances:
•android.graphics.Bitmap @ 0x41407b98 - 1,048,648 (7.83%) bytes. 
•android.graphics.Bitmap @ 0x4169e6a0 - 979,256 (7.31%) bytes. 

我真的无法解释这一点。但似乎我的其他资源正在预先加载? (在我进入他们各自的活动之前?)

【问题讨论】:

    标签: java android memory-management


    【解决方案1】:

    如果你说这就是你的程序试图做的所有事情,那很正常。位图确实会占用大量内存。尝试优化您的图像,这绝对可以帮助您减少应用程序的内存占用。在创建背景时考虑 9-patch 图像。

    【讨论】:

    • 看起来确实很正常...我在Eclipse中创建了一个新项目,它确实占用了相同的内存(在空白活动中)。谢谢!
    猜你喜欢
    • 2011-05-11
    • 2019-05-20
    • 1970-01-01
    • 2013-11-09
    • 2020-02-10
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多