Ответ
Android очищает приложения из памяти по алгоритму Least Recently Used (LRU). Система удаляет:
- Неактивные процессы – приложения, которые давно не использовались
- Фоновые процессы – сервисы, не имеющие активных компонентов
- Кэшированные процессы – приложения без активных компонентов, но которые могут быть быстро восстановлены
Приоритеты очистки (от низшего к высшему):
- Пустые процессы
- Фоновые процессы
- Сервисные процессы
- Видимые процессы
- Процессы переднего плана
Пример проверки важности процесса:
val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
val runningApps = am.runningAppProcesses
runningApps.forEach { process ->
Log.d("Process", "${process.processName} importance: ${process.importance}")
}