Работал ли напрямую со сборщиком мусора (Garbage collector)

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

Ответ

В Android разработке напрямую работать с GC не требуется, так как система автоматически управляет памятью. Однако важно понимать принципы его работы для оптимизации приложений:

  1. Избегать утечек памяти (например, не забывать отписываться от событий)
  2. Минимизировать создание объектов в циклах
  3. Использовать WeakReference для кеширования

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

class LeakyActivity : Activity() {
    private val listener = object : SomeListener {
        override fun onEvent() { /*...*/ }
    }

    override fun onCreate() {
        SomeSingleton.registerListener(listener) // Утечка!
    }
}

Для анализа можно использовать Memory Profiler в Android Studio или LeakCanary.