Имитация низкого заряда батареи и памяти в Android - PullRequest
40 голосов
/ 07 сентября 2010

Для генерации уведомлений мне нужно знать о том, как программно генерировать прерывания от разряженной батареи и от разряда памяти. Может ли кто-нибудь, пожалуйста, предоставьте ваши предложения. Я в курсе Intents.

Ответы [ 6 ]

35 голосов
/ 10 октября 2015

Для вызова ваших onTrimMemory обратных вызовов:

adb shell am send-trim-memory <process-name> <level>

например. adb shell am send-trim-memory com.example.app MODERATE

32 голосов
/ 08 октября 2014

Недостаточно памяти также можно смоделировать с помощью Background process limit в параметрах разработчика устройства.

Перейдите к Settings > Developer options.В разделе app измените Background process limit на Нет фоновых процессов

Теперь ваша активность будет прекращаться при каждом переключении на другое приложение.Полезно для тестирования сохранения состояния и восстановления состояния.

7 голосов
/ 20 сентября 2016

да, этот API-интерфейс запускает тот же обратный вызов, который вы получите, если зарегистрируете контекст для ComponentCallback2, в частности ComponentCallback2 # onTrimMemory , который здесь не упоминался, поэтому я подумал, что проясню. Синтаксис этой команды: am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] Примечание: эта команда доступна только на устройствах под управлением Marshmallow +

4 голосов
/ 26 сентября 2013

Чтобы смоделировать предупреждение о низком заряде батареи, попробуйте эту команду так, как ответил Фрэнк:

power capacity 10 // It will set the battery level into 10%

Для слабой памяти:

ulimit -Sv 15000  //The current memory limit will set to 15000 Kb
4 голосов
/ 07 сентября 2010

В эмуляторе Android вы можете установить состояние питания, подключившись к консоли эмулятора и используя команду power.

Что касается нехватки памяти, вам просто нужно убедиться, что ваше приложение может обрабатывать уничтожение без предупреждения, когда оно находится в фоновом режиме. Тестирование - это один из немногих случаев, когда на самом деле требуется диспетчер задач на Android, или если вы работаете на Android 2.2, вы можете убить приложения через Настройки.

Существуют способы уменьшения памяти, доступной для приложений , но я думаю, что они не нужны.

3 голосов
/ 18 мая 2011

Вы можете использовать меню эмулятора , показанное в моем блоге . Просто подключитесь к локальному хосту через порт вашего эмулятора (по умолчанию 5554) и введите help. Следуйте инструкциям оттуда!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...