当我想在应用程序中模拟内存不足崩溃时就是这种情况。我从Crashlytics中遇到了很多崩溃,这表明最终用户正在遇到OOM崩溃,而我却无法使用我的设备(三星S4)进行再现。我只有崩溃,没有来自rashlytics的其他痕迹。

我想知道是否有人可以重现它们以进行测试(不希望更改任何代码)。

我看到了:Testing Android for Out of Memory scenarios,但是还没有运行它的机会。

任何帮助,将不胜感激。

最佳答案

有多种导致OOM的方法。


使用非常大的图像(顺便说一句,此用例是应用程序中许多实际OOM问题的来源)。我在Recycler中将图片替换为1个元素,所以当我滚动到它时,它将加载大图片(然后,我可以以这种方式进行测试)。
创建一个循环,该循环将对象分配给内存。您可以循环地“新建”一堆对象,然后以这种方式运行它。如果将足够的String或int对象分配到单个数组中,则最终将运行OOM(这也是逐渐构建为OOM条件的好方法)。字符串将导致OOM的速度快于int的速度(但将足够的对象添加到数组中,最终它将变得太大)。

关于android - 在Android中模拟内存不足,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33704085/

10-10 00:54