Какие приложения Android очищает из памяти

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

Ответ

Android очищает приложения из памяти по алгоритму Least Recently Used (LRU). Система удаляет:

  1. Неактивные процессы – приложения, которые давно не использовались
  2. Фоновые процессы – сервисы, не имеющие активных компонентов
  3. Кэшированные процессы – приложения без активных компонентов, но которые могут быть быстро восстановлены

Приоритеты очистки (от низшего к высшему):

  • Пустые процессы
  • Фоновые процессы
  • Сервисные процессы
  • Видимые процессы
  • Процессы переднего плана

Пример проверки важности процесса:

val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
val runningApps = am.runningAppProcesses
runningApps.forEach { process ->
    Log.d("Process", "${process.processName} importance: ${process.importance}")
}