Решение для проверки низкого уровня памяти телефона?
Я ищу решение для проверки нехватки памяти телефона для некоторых других приложений на Android. Одним из решений является создание приложения, которое заполнило бы всю память, но, похоже, не работает. Есть ли другое решение, которое кто-то может предложить?
1 ответ
Два варианта, которые я мог придумать:
Настройте AVD с минимальным объемом доступной памяти.
Разделите физическое состояние устройства и вашего приложения, используя метод, которым вы можете управлять. Настройте прокси-метод (вы можете назвать его что-то вроде
availableStorageSize()
) и убедитесь, что это единственный способ для вашего приложения узнать о свободном месте для хранения. Таким образом, у вас будет больше возможностей для моделирования подобных сценариев.
Редактировать: согласно ветке комментариев этого ответа, вы говорите нам, что вы используете getAvailableBytes()
чтобы определить, достаточно ли памяти доступно и что "если getAvailableBytes возвращает нехватку памяти [вы] не загружаете ее".
С эмулятором и рутированием не может быть и речи, все, что я думаю, вы все еще могли бы сделать, это getAvailableBytes()
внутри собственного метода. Выглядит примерно так:
private fun deviceHasEnoughStorage(size: Long): Boolean {
return size < getAvailableBytes()
}
Затем, чтобы проверить сценарий нехватки памяти, измените этот метод, чтобы всегда возвращать false
:
private fun deviceHasEnoughStorage(size: Long): Boolean {
return false // Simulate low storage state.
}
Далее убедитесь, что не используете getAvailableBytes()
снова и снова в вашем проекте, иначе могут быть некоторые несоответствия здесь и там.
Отказ от ответственности: это скорее последнее средство, а не идеальное решение. По возможности используйте эмулятор для тестирования подобных сценариев, связанных с устройством.