Какие знаешь методы эффективного управления памятью

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

Ответ

Использование WeakReference для хранения ссылок на объекты, которые могут быть собраны GC. Оптимизация коллекций (например, SparseArray вместо HashMap для примитивов). Освобождение ресурсов в onDestroy()/onStop().

Пример с WeakReference:

WeakReference<Activity> activityRef = new WeakReference<>(activity);
// Использование
Activity activity = activityRef.get();
if (activity != null) {
    activity.doSomething();
}

Другие практики:

  • Избегание утечек контекста (не хранить Context в статике)
  • Очистка Bitmap через recycle()
  • Использование Profiler для анализа памяти
  • Оптимизация списков с RecyclerView и пуллингом