Что такое LeakCanary

«Что такое LeakCanary» — вопрос из категории Управление памятью, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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.