Android内存管理问题

时间:2016-07-29 12:42:26

标签: android memory memory-management leakcanary

我正在开发我的第一个Android应用程序,虽然这是一个很大的应用程序..我已经完成了我的应用程序的一半但是让我担心的是应用程序使用的内存..最初我遇到了关于内存不足的问题例外..我首先开始用Android Studio的MAT(Memory Analyzer Tool)分析我的应用程序,这很难跟踪内存使用情况。我的应用程序将达到96mb的分配空间并崩溃..然后在互联网上阅读后使用我泄漏金丝雀指出正在吃内存的静态资源..现在我的应用程序经常收集垃圾收集,但我仍然发现分配的空间仍然是大约70 MB,就像我的应用程序开始分配30mb当我使用应用程序约2分钟然后回到初始屏幕,分配的空间与初始屏幕不同...对于像我这样的初学者来说很难使用MAT跟踪核心的内存使用情况,是否有最好的方法或工具可以让我清楚对象分配空间的图片。对象占用最大空间的物品......应该被毁坏但不被破坏的物体?并保留图像存储器等等提前感谢

2 个答案:

答案 0 :(得分:1)

主要的'内存泄漏'之一是Bitmap。有时,当您在View中加载图像时,它会在操作中使用大量内存。我曾经建议使用像Glide或Fresco这样的库,这些库可以更好地处理内存问题并且已经实现了许多常用功能。

此外,您可以尝试为onDestroy方法中的每个活动释放资源。

尽管如此,如果你能更深入地了解你的项目,我会很高兴。

的问候。

答案 1 :(得分:0)

这里有一些与内存管理相关的帖子。

我们在某些时候都是新手,幸好经验和这些问题已被证明是优秀的'老师'。
就像我在另一篇文章中所说:

  

这当然会导致内存问题,例如泄漏,OOM和   不必要的资源绑定绝对没有自动方式   释放记忆。在任何情况下,你都不能完全依赖   垃圾收集器

基本上,您必须确保在生命周期内只要您知道不再需要它们就分配仅需要的资源并解除分配

我已经用代码(你可以在你的项目中实现)写了一个更详细的解释来处理你的内存问题,可以在这里找到:

It can be found here

此致