Ответ
Да, работал. 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-режиме
Использую его в каждом проекте для отладки утечек памяти.
Ответ 18+ 🔞
А, ну LeakCanary, да, работал, конечно. Эта штука — просто подарок для андроид-разработчика, который устал гадать, куда девается оперативка. Библиотека, которая сама ловит утечки памяти и потом тебе, с покерфейсом, такой: «На, мужик, разбирайся, вот тут у тебя всё потекло». Ёпта, красота же.
Настройка — проще некуда:
dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
}
Вот и всё, блядь. Подключил — и он уже в фоне, как хитрая жопа, следит за твоими Activity, Fragment, ViewModel и прочим добром. Как только что-то начинает висеть в памяти дольше положенного — тут же тебе уведомление на телефон: «Э, сабака сука, у тебя тут память течёт!». И не просто кричит, а даёт полный отчёт, со стектрейсом, чтобы ты понимал, откуда ноги растут. Удивление пиздец, насколько это удобно.
Вот, смотри, классический пример, где всё идёт по пизде:
class MainActivity : AppCompatActivity() {
private val leakedSingleton = Singleton.getInstance() // Вот тут и начинается пиздец, если Singleton наглухо привязался к Activity
}
Сделал такую лажу — и всё, привет, утечка. А LeakCanary тебе это сразу подсветит, не будет ждать, пока приложение накрылось медным тазом.
Что в нём офигенно:
- Ставится в два клика, реально.
- Отчёты — просто песня, там всё разжёвано, даже мне, тупому, понятно.
- Работает и на Kotlin, и на Java — всем сестрам по серьгам.
Но и минусы, куда без них:
- В debug-сборке апк немного раздувается, да. Но кому в дебаге размер апк важен? Да похуй, честно.
- В отладочном режиме может чуть-чуть притормаживать, потому что он же постоянно мониторит, бздит там на фоне. Но это терпимо, ради чистоты кода.
Я эту библиотеку теперь в каждый проект тыкаю по умолчанию. Потому что доверия ебать ноль к себе самому — всегда где-нибудь да оставлю ссылочку, которая потом аукнется. А так — поставил и спишь спокойно. Рекомендую, чувак, не пожалеешь.