一、概要
最近更新了Android Studio 3.6.1版本,發現一個新的功能:
在Memory Profiler中分析堆轉儲時,可以過濾Android Studio認爲可能指示應用程序中Activity和Fragment實例的內存泄漏的概要分析數據。 要使用此功能,請先捕獲堆轉儲或將堆轉儲文件導入Android Studio。 要顯示可能正在泄漏內存的碎片和活動,請在“Memory Profiler”的堆轉儲窗格中選中“Activity/Fragment泄漏”複選框。
二、寫個內存泄漏的demo測試
爲了展示該新功能,寫個內存泄漏的demo來測試一下。
2.1 編寫內存泄漏demo
我們先寫個會發生內存泄漏的程序分析一下,代碼如下所示:
很簡單的一段代碼,每隔1s發送一條數據,因爲關閉Activity之後沒有取消訂閱,RxJava還繼續持有Activity的引用,所以在內存回收的時候,該Activity不會被回收,由此引發內存泄漏。
package com.xtc.data.