Android:启动时内存不足(VM预算...),总安装量的百分比很小

时间:2011-09-14 13:21:06

标签: android

我从Android电子市场获得了一个经典的“VM预算超出内存 - 内存不足”类型错误崩溃报告。

我一遍又一遍地检查了应用程序的内存泄漏情况。此错误发生在总应用程序安装的极小百分比中,大约1-2%,并且始终在启动时发生。该应用程序为每个活动从内部内存加载一些位图,但在大多数设备上都不会崩溃。我认为所有应用程序都保证了位图的最小堆栈大小,所以这应该适用于每个设备。 Min SDK是7。

有什么理由?这听起来对任何人来说都很熟悉吗?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,而且我的图片对某些设备来说太大了。

我已经读过每个Activity有一个图像,我猜这种情况会在从一个图像切换到另一个图像时发生,因为新分配的Drawable不适合。为了节省一些内存,你可以做的是卸载未显示的Activities的背景图片:

@Override
protected void onResume() {
    super.onResume();

    Drawable d = loadMyDrawableFromDisk();
    setBackgroundDrawable(d);
}

@Override
protected void onPause {
    setBackgroundDrawable(null);

    super.onPause();
}

这可能会有所帮助,因为在调用onPause()之后将释放一些内存,而不会在系统未分配View的基础Activity时释放内存。