はじめに
Androidアプリ開発で使えるメモリリーク検出ライブラリを教えてもらったので、導入することにしました。
「LeakCanary」とは?
Android向けのメモリリーク検出ライブラリです。
環境
- OS:macOS Big Sur 11.1
- Android Studio:4.1.2
- Kotlin:1.4.20
- Gradle:6.8
- Gradle plugin:4.1.2
- LeakCanary:2.6
セットアップ
LeakCanaryのインストール
appフォルダ配下の「build.gradle」に依存関係を追加します。
/app/build.gradle
android {
defaultConfig {
+ // For LeakCanary in instrumentation tests
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunnerArgument "listener", "leakcanary.FailTestOnLeakRunListener"
}
}
dependencies {
+ // LeakCanary
+ def leakcanary_version = '2.6'
+ debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version"
+ androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanary_version"
}
インストルメンテッドテストでLeakCanaryを実行しない場合は debugImplementation
の追加のみでOKです。
これだけでLeakCanaryのセットアップは完了です。
使い方
メモリリーク検出の開始
Android Studioから開発しているアプリを実行するだけで、メモリリークの検出が始まります。
Logcatに以下の文字列が出力されていたら、無事に実行されています。
D LeakCanary: LeakCanary is running and ready to detect leaks
メモリリーク検出の確認
私が開発しているアプリではメモリリークが検出されませんでした。
おわりに
かんたんにAndroidアプリのメモリリークを検出できました!
どのようなアプリの開発でも有用だと思います。