2017-02-25 28 views
0

我在我的物理設備的測試我的第一個Android應用程序和Android Studio中監視內存的時候,我注意到所分配的內存從16 MB在短時間內提高到25 MB。Android應用和memeory泄漏

內存監視器 enter image description here

這是否意味着我必須在應用程序memroy泄漏?該應用的總內存爲70MB左右,而且這個數字隨着你打開和關閉應用程序的時間更長。

+0

只是谷歌「java垃圾收集」 – lelloman

+0

@lelloman我知道下降意味着它是automati cally垃圾收集。我問是否從16跳到25+是內存泄漏的標誌。 – Nicolas

回答

0

從16到25跳是不是內存泄漏的跡象,這是一個標誌已經分配了9MB的內存。你可以看到內存下降到17,所以乍一看我會說你沒有內存泄漏。
我現在看到你的編輯,70MB並不意味着你有內存泄漏,無論如何,一個事實,即隨着時間的推移犯規內存使用量的增加意味着內存泄漏無論是。當應該被垃圾收集的對象被保留在內存中時發生內存泄漏。例如,如果你看到在內存中你有破壞活動的許多情況下,這可能很可能是內存泄漏,但如果你繼續分配,因爲一個非常大的導航堆棧的活動,很好,你只是使用將意味着大量的內存

有幾件事你可以做,但:

- 設置Leak Canary在您的應用程序,它會告訴你,如果你有什麼suspicius。

- 在Android Studio中的內存監視器,你應該可以看到一個垃圾車的圖標,當你點擊它,它會手動觸發垃圾收集,它可能是有用的檢查多少內存的應用程序實際上是用

- 在內存監視器,你也應該看到其他2個圖標到垃圾車的右側,第一個(帶箭頭向下)將顯示您當前分配的所有對象及其大小,另一個將允許啓動跟蹤應用程序正在做的所有分配,你可以閱讀更多關於它here

0

您可以閱讀herehere知道如何避免內存泄漏,這link解釋8種方法如何避免內存泄漏