Статья не сохранена, ниже лишь основная мысль и ссылки.

Утечки памяти (memory leaks) ловить трудно, особенно если они проявляются на опубликованном приложении у клиентов. Stacktrace, который приходит в отчёте о падении, даёт мало информации о том, что же действительно утекло. Компания Square создала библиотеку LeakCanary — удобный инструмент для обнаружения утечек.

Естественный вопрос, как библиотека находит утечки, достаточно подробно объяснен в FAQ к библиотеке. Если в двух словах, то никакой чёрной магии нет. Программист сам(!) должен передать ссылку на освобождённый объект в RefWatcher (он получается при инициализации библиотеки). Библиотека проверяет, что этот объект попал к сборщику мусора, или что на него нет ссылок. Если это не так — формируется отчёт об утечке. Единственное, что добавляется на проверку автоматически, это Activity после onDestroy().

Ссылки