Android LeakCanary(檢測(cè)內(nèi)存泄漏插件)
最新版- 軟件大?。?span itemprop="fileSize">6.80 MB
- 軟件語(yǔ)言:中文
- 軟件類型:國(guó)產(chǎn)軟件 / 編程輔助
- 軟件授權(quán): 免費(fèi)軟件
- 更新時(shí)間:2017-06-01 10:17:34
- 軟件等級(jí):
- 軟件廠商: -
- 應(yīng)用平臺(tái):WinAll, WinXP, Win7
- 軟件官網(wǎng): 暫無(wú)
相關(guān)軟件
android studio prettify插件v0.31 官方版
35.00 KB/中文/10.0
小小島嶼官方版v0.11 安卓版
74.62 MB/中文/10.0
星芒效果PS濾鏡StarFilter Prov2020.2.06 漢化免費(fèi)版
6.02 MB/中文/10.0
sketchup pro 2017插件合集644款
619.10 MB/中文/6.0
android studio 3.0最新版金絲雀版
669.00 MB/中文/10.0
軟件介紹人氣軟件精品推薦相關(guān)文章網(wǎng)友評(píng)論下載地址
Android LeakCanary是一個(gè)用于用來(lái)檢測(cè)Android下內(nèi)存泄漏的插件,它能幫助攻城獅在開發(fā)階段直觀快捷的檢查出內(nèi)存泄露的錯(cuò)誤和漏洞,有需要的就來(lái)IT貓撲下載吧!
Android LeakCanary介紹
LeakCanary 是一個(gè)開源的在debug版本中檢測(cè)內(nèi)存泄漏的java庫(kù),能夠幫助攻城獅進(jìn)行檢測(cè)內(nèi)存泄漏的插件。
leakcanary內(nèi)容
你被概率性的 OOM 困擾么?
有時(shí)候,OOM 像幽靈一樣,揮之不去,可真想把它揪出來(lái)時(shí),又捉之不著。
或許,是時(shí)候用 LeakCanary 來(lái)診斷一下了。
它是一個(gè)用來(lái)檢查 Android 下內(nèi)存泄漏的開源庫(kù),這篇文章主要介紹其用法、架構(gòu)和其背后的實(shí)現(xiàn)原理。
如果有一個(gè)工具能自動(dòng)完成這些事情,甚至在發(fā)生 OOM 之前,就把內(nèi)存泄漏報(bào)告給你,那是多么美好的一件事情啊。
LeakCanary 就是用來(lái)干這個(gè)事情的。
在測(cè)試你的 App 時(shí),如果發(fā)生了內(nèi)存泄漏,狀態(tài)欄上會(huì)有通知告訴你。
logcat 上也會(huì)有相應(yīng)的 log 通知你。
什么是內(nèi)存泄露
一些對(duì)象有著有限的生命周期。當(dāng)這些對(duì)象所要做的事情完成了,我們希望他們會(huì)被回收掉。
但是如果有一系列對(duì)這個(gè)對(duì)象的引用,那么在我們期待這個(gè)對(duì)象生命周期結(jié)束的時(shí)候被收回的時(shí)候,它是不會(huì)被回收的。
它還會(huì)占用內(nèi)存,這就造成了內(nèi)存泄露。
持續(xù)累加,內(nèi)存很快被耗盡。
比如,當(dāng) Activity.onDestroy 被調(diào)用之后,activity 以及它涉及到的 view 和相關(guān)的 bitmap 都應(yīng)該被回收。
但是,如果有一個(gè)后臺(tái)線程持有這個(gè) activity 的引用,那么 activity 對(duì)應(yīng)的內(nèi)存就不能被回收。這最終將會(huì)導(dǎo)致內(nèi)存耗盡,然后因?yàn)?OOM 而 crash。
對(duì)戰(zhàn)內(nèi)存泄露
排查內(nèi)存泄露是一個(gè)全手工的過(guò)程,這在 Raizlabs 的 Wrangling Dalvik 系列文章中有詳細(xì)描述。
以下幾個(gè)關(guān)鍵步驟:
1.通過(guò) Bugsnag, Crashlytics 或者 Developer Console 等統(tǒng)計(jì)平臺(tái),了解 OutOfMemoryError 情況。
2.重現(xiàn)問(wèn)題。為了重現(xiàn)問(wèn)題,機(jī)型非常重要,因?yàn)橐恍﹩?wèn)題只在特定的設(shè)備上會(huì)出現(xiàn)。
為了找到特定的機(jī)型,你需要想盡一切辦法,你可能需要去買,去借,甚至去偷。
當(dāng)然,為了確定復(fù)現(xiàn)步驟,你需要一遍一遍地去嘗試。
一切都是非常原始和粗暴的。
3.在發(fā)生內(nèi)存泄露的時(shí)候,把內(nèi)存 Dump 出來(lái)。
4.然后,你需要在 MAT 或者 YourKit 之類的內(nèi)存分析工具中反復(fù)查看,找到那些原本該被回收掉的對(duì)象。
5.計(jì)算這個(gè)對(duì)象到 GC roots 的最短強(qiáng)引用路徑。
6.確定引用路徑中的哪個(gè)引用是不該有的,然后修復(fù)問(wèn)題。
很復(fù)雜對(duì)吧?
如果有一個(gè)類庫(kù)能在發(fā)生 OOM 之前把這些事情全部都搞定,然后你只要修復(fù)這些問(wèn)題就好了,豈不妙哉!
LeakCanary
LeakCanary 是一個(gè)檢測(cè)內(nèi)存泄露的開源類庫(kù)。
你可以在 debug 包種輕松檢測(cè)內(nèi)存泄露。
先看一個(gè)例子:
創(chuàng)建一個(gè)RefWatcher,監(jiān)控對(duì)象引用情況。
當(dāng)發(fā)現(xiàn)有內(nèi)存泄露的時(shí)候,你會(huì)看到一個(gè)很漂亮的 leak trace 報(bào)告:
GC ROOT static Docker.container
references Box.hiddenCat
leaks Cat instance
我們知道,你很忙,每天都有一大堆需求。所以我們把這個(gè)事情弄得很簡(jiǎn)單,你只需要添加一行代碼就行了。然后 LeakCanary 就會(huì)自動(dòng)偵測(cè) activity 的內(nèi)存泄露了。
然后你會(huì)在通知欄看到這樣很漂亮的一個(gè)界面:
這樣,就萬(wàn)事俱備了! 在 debug build 中,如果檢測(cè)到某個(gè) activity 有內(nèi)存泄露,LeakCanary 就是自動(dòng)地顯示一個(gè)通知。
leakcanary工作機(jī)制
1.RefWatcher.watch() 創(chuàng)建一個(gè) KeyedWeakReference 到要被監(jiān)控的對(duì)象。
2.然后在后臺(tái)線程檢查引用是否被清除,如果沒有,調(diào)用GC。
3.如果引用還是未被清除,把 heap 內(nèi)存 dump 到 APP 對(duì)應(yīng)的文件系統(tǒng)中的一個(gè) .hprof 文件中。
4.在另外一個(gè)進(jìn)程中的 HeapAnalyzerService 有一個(gè) HeapAnalyzer 使用HAHA 解析這個(gè)文件。
5.得益于唯一的 reference key, HeapAnalyzer 找到 KeyedWeakReference,定位內(nèi)存泄露。
6.HeapAnalyzer 計(jì)算 到 GC roots 的最短強(qiáng)引用路徑,并確定是否是泄露。如果是的話,建立導(dǎo)致泄露的引用鏈。
7.引用鏈傳遞到 APP 進(jìn)程中的 DisplayLeakService, 并以通知的形式展示出來(lái)。
結(jié)論
使用 LeakCanary 之后,我們修復(fù)了我們 APP 中相當(dāng)多的內(nèi)存泄露。我們甚至發(fā)現(xiàn)了 Android SDK 中的一些內(nèi)存泄露問(wèn)題。
結(jié)果是驚艷的,我們減少了 94% 的由 OOM 導(dǎo)致的 crash。
如果你也想消滅 OOM crash,那還猶豫什么,趕快使用 LeakCanary
更多>> 軟件截圖
推薦應(yīng)用
其他版本下載
精品推薦 Android Studio插件
- 更多 (30個(gè)) >> Android Studio插件 Android Studio是谷歌設(shè)計(jì)的一個(gè)功能全面的安卓開發(fā)環(huán)境,裝備了為各種安卓設(shè)備開應(yīng)用程序(app)開發(fā)所需要的功能。Android Studio的代碼提示和搜索功能既強(qiáng)大又智能,顏色、圖片等內(nèi)容在布局和代碼中可以實(shí)時(shí)預(yù)覽。Android Studio可以拓展支持第三方插
Android Studio 2.2.2中文正式版 1.60 GB
/中文/10.0android studio應(yīng)用開發(fā)實(shí)戰(zhàn)詳解 pdf 0 Bytes
/中文/3.0Android Studio 3.4中文補(bǔ)丁 83.25 MB
/中文/5.0idea插件gsonformat.jar 1.74 MB
/中文/0.0Android Studio for mac 440.00 MB
/中文/10.0Android Studio中文版(支持win10) 293.00 MB
/中文/10.0android studio中文包 13.50 MB
/中文/5.0gitignore插件 511.00 KB
/中文/10.0
相關(guān)文章
下載地址
Android LeakCanary(檢測(cè)內(nèi)存泄漏插件) 最新版
查看所有評(píng)論>> 網(wǎng)友評(píng)論
更多>> 猜你喜歡