国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

使用Android Studio檢測內存泄露(LeakCanary)

2019-12-12 04:27:08
字體:
來源:轉載
供稿:網友

內存泄露,是Android開發者最頭疼的事。可能一處小小的內存泄露,都可能是毀千里之堤的蟻穴。 怎么才能檢測內存泄露呢?
AndroidStudio 中Memory控件臺(顯示器)提供了一個內存監視器。我們可以通過它方便地查看應用程序的性能和內存使用情況,從而也就可以找到需要釋放對象,查找內存泄漏等。

熟悉Memory界面

打開日志控制臺,有一個標簽Memory ,我們可以在這個界面分析當前程序使用的內存情況。

運行要監控的程序(APP)后,打開Android Monitor控制臺窗口,可以看到Memory控制臺。 點擊Memory控制臺上Enable按鈕,Memory控制臺開始顯示正在運行時程序的Memory使用情況。如上圖中顯示:

AndroidStudio Memory的功能:

  • 啟動與關閉Memory監測按鈕
  • 手動觸發GC按鈕
  • dump java heap 按鈕,點擊Android Studio就開始干活了,成功后會自動打開 hprof文件。
  • start(stop) allocation tracking按鈕先點擊一次,然后會看到Memory Recorder開始轉動,然后自己開始在APP上面做相應的操作。在合適的時間再點一次,結束記錄。

如何檢測內存泄露

我們點擊dump Java heap 這個按鈕,APP會Freeze住。大概幾十秒后,

dump成功后會自動打開 hprof文件。

如果我們想了解內存分配更詳細的情況,可以使用Allocation Traker來查看內存到底被什么占用了。 點擊Starg Allocation Tracking按鈕。開始分配追蹤,過一些時間后,點擊Stop Allocation Tracking結束追蹤的位置。停止追蹤后 .alloc文件會自動打開。

當你想查看某個方法的源碼時,右鍵選擇的方法,點擊Jump to source就可以了。

使用LeakCanary

LeakCanary是square公司推出的一款簡單粗暴的檢測內存泄漏的工具。

LeakCanary會檢測應用的內存回收情況,如果發現有垃圾對象沒有被回收,就會去分析當前的內存快照,也就是上邊MAT用到的.hprof文件,找到對象的引用鏈,并顯示在頁面上。這款插件的好處就是,可以在手機端直接查看內存泄露的地方,可以輔助我們檢測內存泄露。

使用: 

在build.gradle文件中添加,不同的編譯使用不同的引用:

dependencies {   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'  releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'}

在應用的Application onCreate方法中添加LeakCanary.install(this),如下:

public class ExampleApplication extends Application { @Override public void onCreate() {  super.onCreate();  LeakCanary.install(this); }}

應用運行起來后,LeakCanary會自動去分析當前的內存狀態,如果檢測到泄漏會發送到通知欄,點擊通知欄就可以跳轉到具體的泄漏分析頁面。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澜沧| 唐河县| 济阳县| 宁武县| 尚志市| 尼玛县| 博白县| 西青区| 上杭县| 西宁市| 阜南县| 德庆县| 和静县| 大同市| 宣城市| 五大连池市| 富宁县| 石门县| 麻城市| 新闻| 红原县| 蓬溪县| 左权县| 旌德县| 开封县| 西充县| 金堂县| 礼泉县| 三台县| 平舆县| 冷水江市| 清原| 高清| 昌吉市| 滦平县| 石狮市| 彩票| 峨山| 噶尔县| 茌平县| 武陟县|