您的位置:首頁技術文章
文章詳情頁

Android Studio使用Profiler來完成內存泄漏的定位

瀏覽:2日期:2022-09-20 13:16:40
目標

使用Android Studio 4.1來完成內存泄漏的定位 目前網上大多數的文章都是在介紹Profile的使用,可以幫忙你檢查出有內存泄漏,誰的內存泄漏.但是根據文章定位誰引起的這個泄漏,一直沒有找到方法,通過幾次努力,自己找到了比較容易的路徑,希望對其他的朋友有幫助

引用

下面文章內使用的Demo在下面的地址 githubDemo 在頁面內點擊簡單例子-> 內存泄漏-> 接著退回到上一個頁面完成泄漏模擬

步驟 自己模擬一個內存泄漏 使用Profiler來完成內存泄漏的位置定位 模擬內存泄漏

在TestActivity類中定義context的靜態變量,onCreate時把這個變量賦值為當前Activity的context.在回退到上一個頁面時,因為靜態變量的持有,導致這個TestActivity無法釋放,產生內存泄漏

使用Profiler 來完成定位

首先完成Dump收集

首先我們吊起TestActivity,然后回退到上一個頁面,此時內存中應該沒有TestActivity,如果有,那么就說明出現了內存泄漏.然后根據下圖來完成一次dump收集

Android Studio使用Profiler來完成內存泄漏的定位

點擊3時進入下圖

首先先點擊1來完成gc內存回收 2選擇產生dump文件

Android Studio使用Profiler來完成內存泄漏的定位

Profiler根據dump文件來分析內存泄漏,跳轉到下圖.

1.表示有幾個內存泄漏

2.查看當前的內存泄漏對象,我們可以先關注自己的工程的內存泄漏.

3.是對象實例,可能這個對象有多個泄漏對象

4.代表引用

5.點擊5以后,6就可以很容易定位到是什么變量導致的這個對象的內存泄漏.

從下圖就可以很容易看到是因為我們定位的靜態變量引用導致的問題.

Android Studio使用Profiler來完成內存泄漏的定位

以上就是Android Studio使用Profiler來完成內存泄漏的定位的詳細內容,更多關于Android Studio用Profiler定位內存泄漏的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
国产综合久久一区二区三区