Ответ
LeakCanary — это библиотека для Android, помогающая обнаруживать утечки памяти в приложениях. Она автоматически отслеживает объекты, которые должны быть уничтожены (например, Activity/Fragment), и если сборщик мусора не может их освободить, показывает утечку с детализацией (цепочка ссылок, удерживающих объект).
Как подключить:
dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
}
Пример утечки (статическое поле):
class MyActivity : Activity() {
companion object {
var leakedContext: Context? = null
}
override fun onCreate() {
leakedContext = this // Утечка! Activity не сможет быть собрана GC
}
}
LeakCanary выведет в лог стектрейс, показывающий, где контекст удерживается. Работает только в debug-сборках, не влияя на production.