Android活动内存消耗

时间:2019-10-12 18:47:10

标签: java android android-studio

我有一个Android应用程序,其中包含4个活动。首先是启动画面,其次是登录,其次是主要,第四是绘图的额外功能。

在真实设备上运行该应用程序-从2014年开始运行的Samsung Galazy选项卡或与Android 4.4一起运行的smth运行错误并在登录活动后崩溃。它说内存不足错误。主要活动包含多个编辑文本字段和按钮,以及单选和使字段可见和不可见。

当我在登录后设置绘图活动时,它将正确登录,并且从绘图到主目录时,它将第一次崩溃,但是会第二次运行。

因此,我删除了启动和登录活动,然后应用程序顺利运行-没有滞后或其他任何情况。可以去画画,然后再回来没有问题。所有功能都起作用。

我的问题是,为什么会这样?为什么它可以在没有启动和登录的情况下运行,但是由于这两个崩溃。我认为这两个并不占用太多内存。那台平板电脑有问题吗,或者我应该检查一下内存消耗?对我来说似乎很奇怪,它可以在没有这两个功能的情况下打开主要活动。

1 个答案:

答案 0 :(得分:0)

内存不足异常是应用程序中很常见的问题。它可以根据设备的RAM大小来更改设备。从这里告诉您是什么导致了问题是不可能的。

设备的内存不足,未正确使用内存(您在活动中使用的图像,在屏幕上的活动中不需要使用的保留的变量的引用)和其他因素会导致此问题。 / p>

你应该怎么做?

  1. 优化材料,尝试使用较低分辨率的图像,在更改活动或片段以使系统回收其所拥有的内存之前,使变量为null。

  2. 使用Leak Canary找出应用程序中是否存在内存泄漏(https://square.github.io/leakcanary/

  3. 使用Android Studio Profiler监视应用程序的内存使用情况,以找出代码的哪一部分使用内存最多。

  4. 了解了权衡之后,您可以调用System.gc()垃圾回收器来回收未使用的内存,然后再执行繁重的任务。

  5. 如果其中任何一个没有帮助,您可以将下面的代码添加到清单文件中(在application标记之间)。但是您应该意识到使用此功能的性能折衷。

    <application            
    android:largeHeap="true"