ページ内ナビ
概要
LeakCanaryはAndroidアプリの開発中に、解放されないオブジェクトを見つけ、保持している参照経路を可視化する診断ライブラリです。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
解放されるはずのオブジェクトを監視して参照経路を解析する
LeakCanaryはAndroidのActivityなどが破棄された後も保持されているかを監視し、ヒープダンプを解析してGC Rootから対象までの強い参照経路を参照経路の解析結果として示します。
出典:[4]
向いている用途
導入前の確認
参考にした公式資料
- [1]LeakCanary README at commit 1aa85dc(2026-10-05)
- [2]LeakCanary v3.0-alpha-9 release(2026-10-05)
- [3]LeakCanary getting started(2026-10-05)
- [4]LeakCanary fundamentals(2026-10-05)
- [5]LeakCanary GitHub metadata(2026-10-05)
- [6]LeakCanary Apache license at commit(2026-10-05)
- [7]LeakCanary fixed sample debug dependencies and Android configuration(2026-10-05)
- [8]LeakCanary fixed sample MainActivity leak actions(2026-10-05)
- [9]LeakCanary fixed sample button labels(2026-10-05)
- [10]LeakCanary fixed SDK and AGP versions(2026-10-05)
- [11]LeakCanary fixed Gradle wrapper(2026-10-05)
編集部からの補足
Androidの画面遷移後に残るオブジェクトを参照経路まで追いたい開発チーム向けです。debugビルドと検証端末に限定し、解析結果を再現操作やコード変更と照合してください。
3ステップで試す
- 1
固定版の要件と導入箇所を確認する
Git、JDK 17、Android SDK 36が必要です。固定コミットを取得し、minSdk 24とcompileSdk 36を確認します。ビルドは同梱のGradle Wrapper 9.6.1とAndroid Gradle Plugin 9.2.1を使います。
git clone https://github.com/square/leakcanary.git leakcanary && cd leakcanary && git checkout --detach 1aa85dc0472d6e38966a649741a7ce30f828d162 && test "$(sed -n 's/androidMinSdk = "\([0-9]*\)"/\1/p' gradle/libs.versions.toml)" = 24 && test "$(sed -n 's/androidCompileSdk = "\([0-9]*\)"/\1/p' gradle/libs.versions.toml)" = 36 - 2
リポジトリ内のデバッグ用サンプルをビルドして導入する
接続済み端末またはエミュレーターへ、projects.leakcanary.leakcanaryAndroidをdebugImplementationで参照済みのサンプルをビルドしてインストールします。公開リリース版への依存関係は追加しません。
./gradlew :samples:leakcanary-android-sample:installDebug - 3
Leak Activityで保持を作り、画面を破棄して解析結果を見る
Example Appで「Leak Activity」を押してから「Finish」でMainActivityを破棄します。ヒープダンプ通知を開き、保持元から対象までの参照経路の解析結果を確認します。
adb shell am start -n com.example.leakcanary/.MainActivity && printf '%s\n' 'On the device: tap "Leak Activity", then "Finish" to destroy MainActivity. Wait for the LeakCanary heap-dump notification, open it, and inspect the reference-path analysis.'
成長
成長の推移 · 直近30日
30,005 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 81
- Open PR
- 15
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- android
- memory-leak
- java
- kotlin
- kotlin-android
- outofmemory
- outofmemoryerror
- leakcanary
- leak-canary
- leak-trace
- Stars
- 30,005
- Forks
- 3,994
- Watchers
- 977
- Open Issues
- 115
- Contributors
- 145
- 所有者種別
- Organization
- 主要言語
- Kotlin
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/05
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Appium22,043 Stars
共通タグ 1件 · 共通カテゴリ 2件
WebDriver互換APIでAndroid・iOS・desktop appのE2E testを自動化する
TypeScript - kotlinx.coroutines13,820 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Kotlinで非同期処理と並行処理を構造化して扱う公式ライブラリ
Kotlin - Exposed9,292 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Kotlinからtype-safe SQL DSLまたはDAOを選び、JDBC/R2DBC・migration・Spring連携までmodule単位で構成する
Kotlin - MockK5,762 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
mock・stub・verifyをKotlin DSLで記述し、coroutineやAndroid testへ広げる
Kotlin - Mockito15,454 Stars
共通タグ 2件 · 共通カテゴリ 2件
Javaの依存先を模擬し、単体テストを小さく保つ
Java - AndroidX Test1,225 Stars
共通タグ 2件 · 共通カテゴリ 2件
AndroidJUnitRunner・Espresso・Test Coreを組み合わせ、device上のinstrumented testとUI testを構築する
Java
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。