Одна из самых популярных проблем, с которой сталкиваются android-разработчики, — это утечка памяти. Что это такое? При каждом запуске приложения ему выделяется кусочек памяти, который можно использовать. Утечка памяти происходит, когда приложение продолжает занимать память хотя она уже не нужна. Как такое может быть? Например, если приложение создаёт новые объекты, а старые сохраняет. Или, когда ссылки на объекты хранятся даже тогда, когда они уже не используются. Можно провести такую аналогию: у вас есть котик Барсик со своим домиком, игрушками и мисками...
Источник: Nuances of Programming Введение Несмотря на наличие в Java надежной автоматической сборки мусора, утечки памяти в этом языке остаются сложной проблемой для разработчиков. Такие утечки происходят, когда объекты больше не нужны приложению, но на них по-прежнему ссылаются другие объекты, что не позволяет сборщику мусора освободить занимаемую ими память. Со временем это может привести к значительному снижению производительности приложения и даже к его аварийному завершению из-за исключения OutOfMemoryError...