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を実行してみましたとさ
簡単に導入できそうなので使ってみてください
関連記事:
- ProgressDialogがdeprecatedになったので、DialogFragmentを拡張して作った
- AndroidのAlertDialogでPositiveボタンの色を変える
- AndroidのIn-App Review APIの注意点