SimpleLeakCanary:LeakCanary 簡化版(Android/Java)

jopen 9年前發布 | 19K 次閱讀 Android開發 移動開發 SimpleLeakCanary

LeakCanary simple version

抽取了LeakCanary檢測部分的代碼,放在了這里,有興趣的可以看下
原理簡單點說就是: 在onDestroy的時候為Activity加上WeakReference,然后在合適的時機調用Runtime.getRuntime().gc()觸發GC,之后檢測下WeakReference還是否存在。
如果存在,那么Activity就泄露了;如果不存在,那么表示回收正常。
具體的細節部分請看抽取代碼。
RefWatcher是引用監聽,也是監聽部分最核心的代碼。

LeakCanary源碼工程導讀

  • leakcanary-analyzer : 如果檢測到內存泄露,就dump出hprof分析,這個庫主要用于分析hprof。 代碼利用了MAT
  • leakcanary-android-no-op : 空實現,為了方便在release時調用
  • leakcanary-android : debug時調用,組織監聽、分析、展示結果等邏輯。
  • leakcanary-sample : 官方調用示例
  • leakcanary-watcher : 引用監聽

項目主頁:http://www.baiduhome.net/lib/view/home/1432023631427

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!