我很難找到可能的內存泄漏。 我有一個活動,在背景中做了一些繁重的工作。Android Studio如何啓動垃圾收集器,它是如何工作的?
執行一些任務後,該應用程序消耗的內存太多。它似乎沒有得到正確的清理。
這是在默認狀態下的活動:
如果我運行該活動是做任務,越來越多的內存分配。經過一番工作
起初我以爲這一定是內存問題,導致GC無法正確釋放內存。據我所知,GC可以釋放內存,如果沒有引用留給對象。那是對的嗎?
既然說到這讓我困惑的部分:
如果我運行從Android Studio中的GC,內存進行適當的清理和我的活動永遠不會被關閉。在分配大量內存時,我只需要使用Android Studio GC。
這是一個我的意思是:
一般的問題是:
爲什麼就可以在Android工作室GC妥善清理內存,爲什麼不它與自動android GC正常工作?
我知道這是一個非常普遍的問題。我只想知道,如果有不同類型的垃圾收集或類似的東西。
也叫System.gc();
不正確地清理內存。
附加信息:
Moto G的第二代
的Android 5.0.2。
「有時,活動或應用程序關閉,我認爲這可能是由內存問題引起的。」如果應用程序因b/c而死亡,則內存不足,您將看到Logcat中可以清楚看到的內存不足異常。我的直覺是你的應用程序崩潰的另一個原因。嘗試通過logcat查看崩潰原因。 – Shmuel
併發GC只進行部分收集,以避免引起明顯的暫停。顯式GC(如Studio觸發的GC)會執行完整的GC掃描。一些閱讀:https://source.android.com/devices/tech/dalvik/gc-debug.html – laalto
@Shmuel有沒有例外。甚至沒有警告。 – FlanschiFox