AndroidのLeakCanaryを使ってみた

Androidでメモリリークを検知する方法
その一つがLeakCanaryを使うこと
そんなわけで使ってみた


・使い方
https://square.github.io/leakcanary/getting_started/

 

・LeakCanaryを使ってみた
git cloneしてサンプルコードを実行してみた
メモリリークすると通知がくる
そしてLogcatに内容がはかれる模様

 

・LeakCanaryのサンプルコード
ExampleApplicationの中に変数が定義されてて

val leakedViews = mutableListOf<View>()
val leakedDialogs = mutableListOf<Dialog>()
val leakedServices = mutableListOf<Service>()

これに自身を突っ込んでた

    findViewById<Button>(R.id.show_dialog_button).setOnClickListener {
      AlertDialog.Builder(this)
        .setTitle("Leaky dialog")
        .setPositiveButton("Dismiss and leak dialog") { dialog, _ ->
          app.leakedDialogs += dialog as AlertDialog
        }
        .show()
    }

 

こうしてLeakCanaryを実行してみましたとさ
簡単に導入できそうなので使ってみてください

関連記事:

Pocket