2012-08-08 142 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