我有一个 Android 应用程序,有 4 个活动。第一个是基本的启动屏幕,第二个是登录,第三个是主屏幕,第四个是用于绘图的额外屏幕。
在真实设备上运行该应用程序 - 2014 年的 Samsung Galazy 选项卡或 Android 4.4 的 smth 会在登录活动后运行错误并崩溃。它说内存不足错误。主要活动包含多个编辑文本字段和按钮,还有单选选项并使字段可见和不可见。
当我在登录后设置绘图活动时,它将正确登录,并且从绘图到主程序时,它第一次崩溃,但第二次运行。
所以我删除了启动和登录活动,然后应用程序运行顺利 - 没有滞后或任何东西。可以去画画并毫无问题地回来。所有功能都有效。
我的问题是,为什么会发生这种情况?为什么它可以在没有启动和登录的情况下运行,但在这两个情况下会崩溃。我认为这两个对内存的影响并不大。该平板电脑可能有问题吗?或者我应该检查一下内存消耗?对我来说这似乎很奇怪,它可以在没有这两个的情况下打开主要活动。
内存不足异常是应用程序中相当常见的问题。它可以根据 RAM 大小更改设备。从这里找出导致您出现问题的原因是不可能的。
设备内存不足、未正确使用内存(您在活动中使用的图像、所保存的变量的引用,而屏幕上的活动中不需要)和其他因素都可能导致此问题。
你该怎么办?
优化您的材质,尝试使用较低分辨率的图像,在更改活动或片段之前将变量设置为空,以使系统回收它们所持有的内存。
使用 Leak Canary 并找出应用程序中是否存在内存泄漏(https://square.github.io/leakcanary/ https://square.github.io/leakcanary/)
使用Android Studio Profiler监控应用程序的内存使用情况,以找出哪部分代码使用内存最多。
了解权衡后,您可以致电System.gc()
垃圾收集器在执行繁重任务之前回收未使用的内存。
-
如果其中任何一个没有帮助,您可以将下面的代码添加到您的清单文件中(在应用程序标记之间)。但您应该意识到使用它的性能权衡。
<application
android:largeHeap="true"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)