Как имитировать убийство приложения Android GC

Мне нужно проверить сериализацию \ десериализацию приложения в следующих случаях:

  • Приложение было в фоновом режиме много времени (режим ожидания) и был убит GC;
  • Приложение было в фоновом режиме и было убито GC по причине нехватки ресурсов (памяти \ cp);

На некоторых устройствах он может быть смоделирован путем запуска 1-2 игр. Но на четырехъядерных устройствах с памятью 1 ГБ очень сложно с 4-10 тяжелыми играми и занимает много времени.

Я пытаюсь реализовать некоторую демонстрацию, где эмуляция загрузки ресурсов:

  • Создавать массивы растровых изображений
  • Создавать массивы объектов
  • Запустить множество услуг
  • Запустить много мероприятий

Но результата нет, приложение все еще работает (даже на старых устройствах), и моя демонстрация разбилась с OutOfMemoryException.

Как я могу имитировать высокую нагрузку в демонстрационном приложении?

Благодаря!

Solutions Collecting From Web of "Как имитировать убийство приложения Android GC"

Ну, «GC» на самом деле злоупотребляет «Out Of Memory Killer» и убивает приложения, как если бы сигнал 9. В корневом устройстве вы должны иметь возможность вызывать команду kill (1) из оболочки или kill (2) из родной (Я не уверен, привязан ли он к Java) и убить ваше приложение, когда захотите.

Система обычно вызывает onStop в Activity когда она собирается onStop и чем убивает приложение без дальнейшего предупреждения и без каких-либо проблем реагировать. Поэтому, если вы оставите приложение и убьете его, это будет подходящим симулятором его убийства OOM.

Установите любой очиститель памяти в хранилище воспроизведения. Я устанавливаю это: easymemorycleaner

Как только вы очистите память. Ваша сохраненная переменная внутри памяти исчезнет. Если вы не сохранили данные в Parcelable. Это будет настойчиво.