我正在寻找一种解决方案来测试Android上的其他应用程序的低手机存储空间。一种解决方案是创建一个可以填满整个内存的应用程序,但这似乎不起作用。有人可以提出任何其他解决方案吗?
答案 0 :(得分:1)
我能想到的两个选择:
使用最少的可用内存设置AVD。
使用您可以控制的方法解除设备和应用的物理状态。设置代理方法(您可以称之为availableStorageSize()
),并确保它是您的应用程序了解免费存储空间的唯一方法。通过这种方式,您可以更有效地模拟这些场景。
编辑:根据此答案的评论主题,您告诉我们您正在使用getAvailableBytes()
来确定是否有足够的可用内存以及“if 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()
,否则可能会出现一些不一致的地方。
免责声明:这不是最后的手段,而是理想的解决方案。尽可能使用模拟器来测试这样的设备相关场景。