Ответ
В Android управление памятью осуществляется через Garbage Collector (GC), который автоматически освобождает память от неиспользуемых объектов. Ручное управление памятью сложно и подвержено ошибкам:
- Сложность — легко пропустить освобождение ресурсов, что приведёт к утечкам.
- Неэффективность — GC оптимизирован под работу с кучей и учитывает жизненный цикл приложения.
- Непредсказуемость — ручное управление может нарушить работу GC и вызвать лаги.
Пример утечки:
class LeakyActivity : Activity() {
private val listener = object : SomeListener {
override fun onEvent() = Unit
}
override fun onCreate() {
SomeSingleton.register(listener) // Утечка: listener держит Activity
}
}
Используйте WeakReference или Lifecycle-aware компоненты (например, LiveData).