Тестирование жизненного цикла и восстановления приложений приложений Android при достижении пустого состояния процесса

Недавно я пытался улучшить свои знания и навыки в отношении управления состоянием приложений Android в разные моменты жизненного цикла приложения. В частности, я тестировал различные способы поддержания и обмена глобальными данными между действиями . В моих тестовых приложениях, чтобы протестировать воссоздание данных глобальных приложений и / или одноэлементных данных, мне нужно подождать несколько часов или больше, чтобы мой телефон решил, что другие процессы важнее, и поставить тестовое приложение В пустом состоянии процесса, как определено в документации жизненного цикла процесса . На данный момент данные приложения освобождаются и их нужно воссоздавать, как только приложение будет перенесено на передний план снова. Если это сделано неправильно, повторная инициализация последнего известного состояния приложения может привести к силе закрытия по разным причинам.

Итак, мой вопрос заключается в том, что, не ожидая, что это произойдет органично, существует реальный способ тестирования этого события. Например, как выглядит случай использования QA, который проверяет приложение, входящее в фоновый режим для (очень) длительного периода времени, а затем снова выводится на передний план после того, как приложение достигло состояния пустого процесса?

Я делал немного проб и ошибок с этим и придумал хорошее решение:

В конечном счете, это сводится к тому, что каждое действие может восстанавливать свое состояние независимо. Это справедливо и для Приложения. Состояние «Пустой процесс» – это конечное состояние, в которое ОС помещает приложение, после того как оно считается более важным.

Вот что мне нужно для проверки сценария «Пустой процесс» моего приложения:

  1. Откройте приложение на соответствующей странице.
  2. Нажмите кнопку «Главная» на телефоне.
  3. Откройте не менее 3 приложений с большим количеством ресурсов с длинным списком прокрутки (я использую Facebook, Youtube и магазин Google Play).
  4. В каждом приложении прокрутите список вниз на хорошую сумму, чтобы использовать системные ресурсы.
  5. После того как вы закончите со всеми 3 приложениями, снова откройте приложение.

Выполнение вышеуказанного теста для каждого действия и фрагмента позволяет проверить полное восстановление не только активности и / или фрагмента, но и всего приложения.

Это немного PITA, но это эффективно.