2014-12-05 58 views
1

在我寫的Android應用程序中,內存使用率似乎很高。越多使用它,應用越慢。因此,我試圖在Eclipse中使用DDMS挖掘原因。這是我在「堆」在DDMS標籤看到,當我點擊「事業GC」:找出哪個對象正在吃掉Android應用程序中的內存

enter image description here

對不起,是新來的這一點;我承認。無法做出任何事情。有一個對象的'1字節數組'使用超過6MB(!!)的空間。我如何獲得堆棧跟蹤?我如何找到創建該對象的位置?

簡要說明何時完成GC(我在DDMS中引起'導致GC'按鈕):應用程序有一個後臺線程,每隔幾秒連接一次遠程服務器。這個堆是在App開始後的一段時間內完成的(並且沒有用戶的交互)。

有人可以幫忙嗎?

+0

它可能是一個位圖。你爲什麼這麼擔心? – Blackbelt 2014-12-05 10:22:15

+0

@Blackbelt,你怎麼說這是一個位圖? – Jean 2014-12-05 11:24:21

回答

0

這不是一個編程問題,而是一個工程問題。

您應該能夠看到整個活動的內存使用情況。這意味着你知道哪個Activity消耗內存。

在該活動中,嘗試註釋掉可疑代碼並查看其差異。內存很可能在圖像或視頻中消耗。所以我建議你留意解碼位圖或將視頻URL設置爲VideoView。

+0

你如何「跟蹤」內存使用情況?我怎麼能說這個6MB對象(我在屏幕截圖中看到)在哪裏創建? – Jean 2014-12-05 11:26:40

+0

內存消耗何時發生?說一下,創建一個特定的活動?或onClick後? – 2014-12-05 11:29:53

+0

該應用程序有一個後臺線程,每隔幾秒聯繫一次遠程服務器。這個堆是在App開始後的一段時間內完成的(並且沒有用戶的交互)。 – Jean 2014-12-05 11:37:13

相關問題