Leak Canary 源碼快讀

結構

Leak Canary 內部分為三個包,分別是Android Analyze Watcher


android包內部為主控邏輯部分以及平臺api相關邏輯。

watcher包的功能為監控某個對象的內存引用釋放情況。

analyzer包負責處理watcher后dump出的內存文件。

haha是另外一個開源工程,內存文件的處理都依賴這個庫。


關鍵邏輯及流轉



通過ActivityLifecycleCallbacks監聽activity銷毀,然后在activity上包裝WeakReference后觸發gc,之后如果對象仍存活則dump內存并分析引用鏈并以Notification 形式反饋。

可以看出Leak Canary的主要邏輯觸發依賴activity 生命周期并且只進行了activity的內存檢測,但其內存監控邏輯完全可以重用,稍加改造就可以自定義需要內存監控的內容。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容