使用MAT分析應(yīng)用的內(nèi)存信息

歡迎Follow我的GitHub, 關(guān)注我的簡書. 其余參考Android目錄.

內(nèi)存

本文的合集已經(jīng)編著成書,高級Android開發(fā)強化實戰(zhàn),歡迎各位讀友的建議和指導(dǎo)。在京東即可購買:https://item.jd.com/12385680.html

Android

MAT(Memory Analyzer Tool), 是著名的Android內(nèi)存分析工具, 雖然LeakCanary更加便捷, 但是MAT可以清楚地獲知整體內(nèi)存使用情況, 還是必須要掌握的. 我來講解一下如何使用.


1. 內(nèi)存文件

使用Android Studio底部的AndroidMonitor, 獲取內(nèi)存片段.

點擊Initial GC回收內(nèi)存, 使用應(yīng)用, Dump Java Heap, 再次點擊停止.

內(nèi)存泄露

在Android的SDK中的platform-tools文件夾內(nèi), hprof-conv腳本把AS的內(nèi)存格式轉(zhuǎn)換為MAT的內(nèi)存格式. 之后, 使用MAT打開文件.

使用命令

./hprof-conv path/file.hprof exitPath/heap-converted.hprof

2. 分析內(nèi)存

下載Eclipse的MAT工具.

雖然是Eclipse的工具, 但是可以單獨運行, 并不需要安裝Eclipse.

打開內(nèi)存片段, 選擇內(nèi)存報告.


內(nèi)存報告

內(nèi)存整體情況.

內(nèi)存

選擇直方圖樣式, 添加包名過濾.

引用

3. 判斷泄露

Activity或View大于1個對象, 都有可能發(fā)生內(nèi)存泄露.

顯示內(nèi)存的所有引用情況


引用

逐個判斷即可, 有些對象的引用較多, 可能是使用了數(shù)組, 并不一定是內(nèi)存泄露.

顯示單個類的內(nèi)存情況


內(nèi)存

使用搜索功能, 輸入SQL語句, 并執(zhí)行. 紅色嘆號執(zhí)行搜索.

通過觀察, 我們發(fā)現(xiàn)微信mWXApi傳入了錯誤的Context, 導(dǎo)致內(nèi)存泄露.

泄露

代碼

        mFriendsPlatform = new WXSharePlatform(mActivity, title, content,
                bitmap, pageUrl, SendMessageToWX.Req.WXSceneTimeline);

直接傳入Activity導(dǎo)致內(nèi)存泄露, 修改為getApplicationContext即可.


其實還比較復(fù)雜, 簡單的方法是使用LeakCanary, 參考.

OK, that's all! Enjoy it!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評論 25 709
  • 內(nèi)存管理的目的就是讓我們在開發(fā)中怎么有效的避免我們的應(yīng)用出現(xiàn)內(nèi)存泄漏的問題。內(nèi)存泄漏大家都不陌生了,簡單粗俗的講,...
    宇宙只有巴掌大閱讀 2,483評論 0 12
  • 被文同時發(fā)布在CSDN上,歡迎查看。 APP內(nèi)存的使用,是評價一款應(yīng)用性能高低的一個重要指標。雖然現(xiàn)在智能手機的內(nèi)...
    大圣代閱讀 4,957評論 2 54
  • 巖巖早上出門的時候才記起,今天是傳說中的圣誕節(jié)。管他什么圣誕節(jié)生蛋節(jié)呢,她甩了甩頭,彎腰穿鞋,自嘲的想,什么節(jié)都跟...
    落微閱讀 410評論 0 3
  • 昨晚洗漱時遇到一個棘手的問題,想想昨晚報名學(xué)車,然后拿到駕照,明年買到一輛實惠的轎車,可是我車往哪里停呀!畢竟自己...
    大洪閱讀 153評論 0 0

友情鏈接更多精彩內(nèi)容