Android Simulator: простой способ симулировать перезапуск процесса из-за нехватки памяти? - PullRequest
14 голосов
/ 03 января 2012

Как я только что узнал, Android оставляет за собой право в любой момент завершить процесс фонового приложения, чтобы перезапустить ОЗУ.Приложение все еще работает и, тем не менее, может быть возобновлено, но все мои статические переменные исчезли (см. эту статью).

Я хотел бы смоделировать поведение моего приложения в этом сценарии.Какой самый простой способ сделать это?Конечно, должен быть более простой и предсказуемый способ, чем написание дополнительных приложений, которые выделяют много памяти.

Ответы [ 4 ]

8 голосов
/ 04 января 2012

Найдено два похожих вопроса Имитация уничтожения активности в эмуляторе и Имитация разряда батареи и памяти в Android .

Решения по этим вопросам:

  • Используйте adb shell, а затем kill процесс с PID из ps
  • Убить его, используя DDMS
5 голосов
/ 24 февраля 2013

краткий ответ: измените ориентацию, если вы используете эмулятор.если вы используете реальное устройство, измените настройки, перейдя в настройки -> параметры разработчика -> не сохранять действия.

см. мой ответ на это и это для подробного объяснения.

2 голосов
/ 21 мая 2014

Альтернативный способ - создать супер базовое приложение, которое вызывает для вашего пакета killBackgroundProcesses () , потому что этот метод "аналогичен ядру, убивающему эти процессы для восстановления памяти; система позаботится перезапустить эти процессы в будущем по мере необходимости. "

1 голос
/ 05 мая 2017

Чтобы убить фоновые процессы (но все же перезапустить через историю), вы можете просто использовать команду оболочки менеджера операций на симуляторе или устройстве:

$ adb shell am kill com.my.package
...