Работал ли с LeakCanary

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

Ответ

Да, работал. LeakCanary — это библиотека для обнаружения утечек памяти в Android-приложениях. Она автоматически находит утечки и предоставляет понятный стек вызовов, помогая быстро их исправить.

Настройка:

dependencies {
  debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
}

После подключения LeakCanary автоматически мониторит Activity, Fragment, ViewModel и другие объекты. При обнаружении утечки показывает уведомление и детальный отчет.

Пример утечки:

class MainActivity : AppCompatActivity() {
    private val leakedSingleton = Singleton.getInstance() // Утечка, если Singleton хранит ссылку на Activity
}

Плюсы:

  • Простота интеграции
  • Наглядные отчеты
  • Поддержка Kotlin и Java

Минусы:

  • Увеличивает размер APK в debug-сборке
  • Может замедлять работу в debug-режиме

Использую его в каждом проекте для отладки утечек памяти.