2016-07-29 261 views
0

我正在研究我的第一个Android应用程序,尽管这是一个很大的应用程序..我已经完成了我的一半应用程序,但是让我担心的是应用程序使用的内存..最初我遇到了问题关于内存不足的例外情况..我首先开始使用Android Studio的MAT(内存分析工具)分析我的应用程序,这很难追踪内存使用情况..我的应用程序将达到96mb的分配空间并崩溃。然后读取在互联网上我使用了Leak Canary,指出了吃内存的静态资源..现在我的应用程序经常收集垃圾收集,但我仍然发现分配的空间仍然在70 MB左右,就像我的应用程序开始分配30MB时,我使用应用程序约2分钟,回到初始屏幕分配的空间是不一样的初始...像我这样的初学者很难跟踪内存使用情况核心usi是否有一个最好的方法或工具,它会给我一个清晰的对象分配空间的图片。正在占用最大空间的对象..应该被破坏但不被破坏的对象?和保留图像内存等等等在此先感谢Android内存管理问题

回答

0

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

我们在某些时候都是新手,感谢经验,像这样的问题已被证明是优秀的“老师”。
就像我在另一篇文章说:

当然导致内存问题,如漏水,OOM和 不必要的资源结合此意愿。 有没有自动的方式来释放内存。你不能在任何情况下,仅仅依靠 垃圾收集

基本上,你必须确保你分配只有所需的资源,一旦你知道你不会需要他们中了取消分配这些在Lifecyce

我已经写了代码(即您可以在项目执行)来处理你的记忆问题进行更详细的解释可以在这里找到:

It can be found here

问候,

+0

我经历了你的回答......那肯定会帮我清理一些记忆...... Ty – Moulesh

1

其中一个主要'记忆流氓'是位图。有时,当你在一个视图中加载一个图像时,它会在该操作中使用很多内存。我曾经推荐使用像Glide或Fresco这样的库,它们可以更好地处理内存问题,并且已经实现了很多共同的功能。

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

尽管如此,如果您能给我们更深入的项目概述,我会很高兴。

问候。

+0

我的应用程序是像一个购物应用..和我使用的是单一的活动和休息都是碎片。我会尽力的建议图书馆..请让我再知道如果你认为有用的东西是将帮助我克服内存问题.. – Moulesh

+0

检查里卡多维埃拉的答案和本教程可能对你有用。 https://www.raizlabs.com/dev/2014/03/wrangling-dalvik-memory-management-in-android-part-1-of-2/ – kikettas

+0

是的,我会通过所有的链接,并尝试优化我的应用程序尽我所能...谢谢你的所有链接n引用.. – Moulesh