無論如何,我們可以在Android中監測GC事件嗎?如何聆聽Android中的GC事件
在Java中,我相信我們可以收聽事件http://www.fasterj.com/articles/gcnotifs.shtml 但是java.lang.management APIs在Android中不可用。
無論如何,我們可以在Android中監測GC事件嗎?如何聆聽Android中的GC事件
在Java中,我相信我們可以收聽事件http://www.fasterj.com/articles/gcnotifs.shtml 但是java.lang.management APIs在Android中不可用。
爲什麼你想要這個監聽器。如果你只是想知道,如果您的應用程序運行內存只是檢查:
釋放內存,內存變緊
在您的應用程序生命週期的任何階段,onTrimMemory()回調也告訴你當整體設備內存越來越低。你應該通過進一步釋放基於()由onTrimMemory交付以下內存資源水平作出迴應:
TRIM_MEMORY_RUNNING_CRITICAL 您的應用程序仍在運行,但系統已經殺死了LRU緩存中的大部分進程,因此您應該立即釋放所有非關鍵資源。如果系統無法回收足夠數量的RAM,它將清除所有的LRU緩存,並開始殺死系統希望保持活動的進程,例如託管正在運行的服務的進程。 此外,當你的應用程序是當前緩存,您可能會收到來自onTrimMemory以下級別()中的一個:
TRIM_MEMORY_BACKGROUND 在系統運行時內存不足,你的過程是接近LRU列表的開頭。雖然您的應用程序進程沒有被殺死的高風險,但系統可能已經在殺死LRU緩存中的進程。您應該釋放容易恢復的資源,以便您的過程保留在列表中,並在用戶返回到您的應用時快速恢復。
下面是引用鏈接https://developer.android.com/training/articles/memory.html
好吧,這將是雙方的Dalvik和技術不同..
基本上可以指導亞行外殼,記錄在一個跟蹤文件中的GC事件..
藝術:https://source.android.com/devices/tech/dalvik/gc-debug.html
它甚至可能是藝術和Dalvik的同亞行的命令。
當它在android studio中爲你顯示內存的圖形圖表時,內存監視器工具會插入此內存中。
在編程上,可能會更困難..看看FB如何執行它們的性能工具,因爲我相信他們正在從本地C/C++端執行GC事件計數,並將它們放在flatbuffer中用於其Java代碼剖析工具代碼訪問..
爲哪個Android運行時? Dalvik還是ART? – AADProgramming 2016-06-30 11:19:56