2012-08-08 102 views
0

我有我的Android应用程序的内存使用问题,不知道是什么原因导致高内存使用情况。当我启动我的应用程序时,它使用高达40 MB的内存(称为DDMS),当我打开另一个应用程序时,我的应用程序立即死亡。安卓内存问题 - 应用程序使用很多内存

我读了很多关于内存泄漏和我解除绑定可绘制运行GC等,但我的应用程序仍然需要大量的内存。

我在我的应用程序中有大约3mb的资源,但afaik它们被按需加载到内存中。我错了吗?这可能会导致40MB的RAM使用率?

编辑:我觉得我没有内存泄漏,因为我可以经常因为我想要的交换机上的每个活动的方向和由于低内存的应用程序不会崩溃。所以它不能成为一种记忆缺失,可以吗?

回答

0

您需要对您的android应用程序进行内存管理,请释放不再使用的资源,尝试覆盖Activity的onStop(),onDestroy(),onPause()方法,该方法将跟踪活动堆栈。

中的OnDestroy

()方法释放你的整个availed资源,使其他应用程序可以再次使用相同的资源。

+0

我已经覆盖onDestroy(我认为它足够了,因为我开始一个新的完成后的活动)解绑定drawables(linearlayouts的背景图像)并调用GC – anel 2012-08-08 11:10:09

0

你使用什么数据结构?非常大的数据结构(长列表,大图,大图等)可以快速使用RAM。

也可能是因为您的应用程序中的方向更改导致上下文泄漏。

它也可能是你的布局设计得非常糟糕,还有一些沉重的数据结构。

除非您更详细地描述应用程序尝试执行的操作,否则很难说清楚。

+0

我没有使用大数据结构。我有很多布局文件和drawable,但是每个都很小(并且布局不是很复杂)。我有一个启动画面,然后是一个连接到web服务的小型loginActivity。在成功入侵之后还有其他不复杂的活动。大量的drawables只是为了选择一个图像,并没有加载,直到你按下按钮。但在此之前,该应用程序已经使用了40 MB的RAM。 – anel 2012-08-08 11:03:27

+0

这很奇怪。对不起,我目前没有想法 – 2012-08-08 12:59:17