Android內(nèi)存優(yōu)化之LeakCanary的使用

debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.5.4’

releaseCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.4’

build.gradle引入這兩個依賴

//添加leakcanary相關(guān)的依賴

//在release版本中,使用的是LeakCanary的no-op版本,也就是沒有實際代碼和操作的Wrapper版本,只包含LeakCanary和RefWatcher類的空實現(xiàn),這樣不會對生成的APK包體積和應(yīng)用性能造成影響;

1.在Application處填寫如下;其中有獲取該RefWatcher的方法,我們在Fragment里面需要使用install方法

1.基本上就大功告成了

2.舉個例子,在MainActivity中我們?nèi)缦?/p>

測試

在通知中我們可以看如下通知

分析結(jié)果

LeakThead是 內(nèi)部類,默認持有MainActivity的引用;多次橫豎屏之后,Activity的生命周期會重走,本來應(yīng)該被GC回收,但是并沒有被回收,就造成了內(nèi)存泄漏.圖中告訴我們是MainActviity實例導(dǎo)致內(nèi)存泄漏,往上分析就是LeackThread導(dǎo)致.

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

推薦閱讀更多精彩內(nèi)容