中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中利用LeakCanary對內存泄漏進行排查

發布時間:2020-11-30 16:49:15 來源:億速云 閱讀:164 作者:Leah 欄目:移動開發

今天就跟大家聊聊有關怎么在Android中利用LeakCanary對內存泄漏進行排查,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

在 build.gralde 里加上依賴, 然后sync 一下, 添加內容如下

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

省略號代表其他已有內容

在 Application類里面將 LeakCanary 初始化。。 比如叫MyApplication ,如果沒有就創建一個,繼承 android.app.Application。 別忘了在AndroidManifest.xml中加上,否則不起作用

public class MyApplication extends Application {
 @Override
 public void onCreate() {
  super.onCreate();

  if (LeakCanary.isInAnalyzerProcess(this)) {
   // This process is dedicated to LeakCanary for heap analysis.
   // You should not init your app in this process.
   return;
  }
  LeakCanary.install(this);

  // 你的其他代碼從下面開始
 }
}

官方已經有demo了,可以跑跑看。

package com.github.pandafang.leakcanarytest;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);


 View button = findViewById(R.id.async_task);
 button.setOnClickListener(new View.OnClickListener() {
  @Override public void onClick(View v) {
  startAsyncTask();
  }
 });
 }


 void startAsyncTask() {
 // This async task is an anonymous class and therefore has a hidden reference to the outer
 // class MainActivity. If the activity gets destroyed before the task finishes (e.g. rotation),
 // the activity instance will leak.
 new AsyncTask<Void, Void, Void>() {
  @Override protected Void doInBackground(Void... params) {
  // Do some slow work in background
  SystemClock.sleep(20000);
  return null;
  }
 }.execute();
 }
}

進入主界面按下按鈕, 再按返回鍵退出主界面, 反復幾次,LeakCanary  就能探測到內存泄漏了。注意要多操作幾次,1次的話泄漏規模太小,可能不會探測到。LeakCanary  一旦探測到會彈出提示的。

回到桌面,會看到一個LeakCanary 的圖標,如果有多個app 用到就會有多個LeakCanary圖標。

看完上述內容,你們對怎么在Android中利用LeakCanary對內存泄漏進行排查有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

恩施市| 揭东县| 酒泉市| 邻水| 越西县| 息烽县| 弥渡县| 平乐县| 荆州市| 青州市| 泗水县| 渭源县| 四川省| 蓝山县| 阿拉尔市| 澳门| 博湖县| 瑞昌市| 噶尔县| 舟曲县| 石家庄市| 衡阳县| 腾冲县| 阿坝| 定兴县| 安徽省| 秦安县| 怀仁县| 化德县| 宣武区| 莫力| 班玛县| 宽城| 油尖旺区| 金寨县| 天长市| 临西县| 凉山| 章丘市| 密云县| 安溪县|