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